HASuggestionField
HASuggestionField 是用 Swift 编写的 iOS 建议列表。它可以根据任何符号提供项目列表。它允许用户从下拉列表中选择任何建议项。然后应用于选定的项提供的属性。项目也可以通过结构体定义。这些结构体会定义每个项目的属性。
只需将HASuggestionField.swift包含到您的项目中即可。
使用方法
在IB中或代码中(使用UIView的初始化方法)创建一个HASuggestionField。然后添加建议字段的值,例如
@IBOutlet weak var suggestionField: HASuggestionField!
func setupSuggestionFieldData() {
let usersValue = HASuggestionFieldValue
.init(symbol: HASymbol("@"),
attributesWhenSelected: [NSAttributedString.Key.foregroundColor: UIColor.blue],
items: getSomeUsers(),
isUnique: false,
setAny: false)
let tagsValue = HASuggestionFieldValue
.init(symbol: HASymbol("#"),
attributesWhenSelected: [NSAttributedString.Key.backgroundColor : UIColor.lightGray],
items: getSomeHastags(),
isUnique: false,
setAny: true)
suggestionField.setupWithValues([tagsValue, usersValue])
}
func getSomeUsers() -> [HASuggestionFieldItem] {
let user1 = HASuggestionFieldItem.init(title: "Hassan", detail: "[email protected]", image: nil, imgURL: nil, replaceDetail: false)
let user2 = HASuggestionFieldItem.init(title: "John", detail: "[email protected]", image: nil, imgURL: nil, replaceDetail: false)
let user3 = HASuggestionFieldItem.init(title: "Jack", detail: "[email protected]", image: nil, imgURL: nil, replaceDetail: false)
let user4 = HASuggestionFieldItem.init(title: "Tyrion", detail: "[email protected]", image: nil, imgURL: nil, replaceDetail: false)
return [user1, user2, user3, user4]
}
func getSomeHastags() -> [HASuggestionFieldItem] {
let tag1 = HASuggestionFieldItem.init(title: "developer", detail: "", image: nil, imgURL: nil, replaceDetail: false)
let tag2 = HASuggestionFieldItem.init(title: "coder", detail: "", image: nil, imgURL: nil, replaceDetail: false)
let tag3 = HASuggestionFieldItem.init(title: "swift", detail: "", image: nil, imgURL: nil, replaceDetail: false)
let tag4 = HASuggestionFieldItem.init(title: "ios", detail: "", image: nil, imgURL: nil, replaceDetail: false)
return [tag1, tag2, tag3, tag4]
}
您还可以实现HASuggestionFieldDelegate来在用户输入符号或与符号相关的文本时接收通知
func haSuggestionField(_ field: HASuggestionField, didChangeTextfor symbol: String, word: String) {
print("User entered \(word) for symbol \(symbol)")
}
func haSuggestionField(_ field: HASuggestionField, didEnter symbol: String) {
print("User entered the symbol \(symbol)")
}
可以添加或删除值
所有属性都可以手动修改。
许可证和作者ship
根据GNU GENERAL PUBLIC LICENSE发布。版权所有Hassan Aftab。请在GitHub上提出问题。