具有唯一标识符的UIButton

时间:2017-09-20 12:55:58

标签: ios swift3 uibutton

在这里搜索问题 This 但并没有完全解决我的问题。

问题在于我在UIScrollView中有大约100个按钮,根据服务器的响应,我必须突出显示按钮(即服务器发送给我" Button_Unique_Id":" Button_ABC_1")。现在问题是如何创建一个具有唯一标识符" Button_ABC_1"的UIButton,这样当我从服务器获得响应时,我可以使用Button_Unique_Id值识别我的按钮并对其进行更改按钮。

button.tag = index

这种方法失败了,因为我无法识别具有价值的按钮" Button_ABC_1"

我很感激最好的回应。

4 个答案:

答案 0 :(得分:1)

Just create subclass of UIButton and add id instance variable whatever type you want. Good Luck!

EDIT

class MyButton: UIButton {
    var id : String?
}

Usage:

let btn = MyButton(type: .custom)
btn.id = "MY_BUTTON_ID"

Something like that.

答案 1 :(得分:1)

Dictionary[String : UIButton])中保留对按钮的引用,并将这些字符串用作键,然后只需要求它就可以获得相应的按钮:

let buttonOfInterest = buttons["Button_ABC_1"]

答案 2 :(得分:1)

您可以使用Button.tag = integerValue按钮存储整数值。 您可以管理这些数据的数组,并使用按钮标记绑定该数组。

答案 3 :(得分:0)

enum ButtonIdentifier: String {
//you could name the enum as ButtonMapper
//let the case be same as server response string
case button_abc_0
case button_abc_1
case button_abc_2

var id: int {
//fetch the id from the server response string & return - here fetch the integer from the rawValue.
//Or else you have to use the switch for returning the id which is not feasible when you have 100s of data - better to extract from the response string
}

guard let buttonIdentifier = ButtonIdentifier (rawValue: serverResponceString) else { return }

使用forEach循环,您可以一次标记(整数值)按钮

updateButton(with tag: buttonIdentifier.id)