HASuggestionField 0.0.5

HASuggestionField 0.0.5

Hassan维护。



  • Hassan Aftab和tag

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上提出问题。