ios – 在Swift中向UIButton添加字符串属性

ios – 在Swift中向UIButton添加字符串属性,第1张

概述如何在 Swift中将字符串属性与UIButton相关联?我不希望字符串显示为按钮文本,只是将其指定为按钮作为标识符或键.这是我到目前为止: func createAnswerButtons() { var index:Int for index = 0; index < self.currentQuestion?.answers.count; index++ { 如何在 Swift中将字符串属性与UIbutton相关联?我不希望字符串显示为按钮文本,只是将其指定为按钮作为标识符或键.这是我到目前为止:
func createAnswerbuttons() {    var index:Int    for index = 0; index < self.currentQuestion?.answers.count; index++ {        // Create an answer button vIEw        var answer:AnswerbuttonVIEw = AnswerbuttonVIEw()        selection.setTranslatesautoresizingMaskIntoConstraints(false)        // Place into content vIEw        self.scrollVIEwContentVIEw.addSubvIEw(answer)        // Add a tapped gesture recognizer to the button        let tapGesture:UITapGestureRecognizer = UITapGestureRecognizer(target: self,action: Selector("answerTapped:"))        answer.addGestureRecognizer(tapGesture)        // Add constraints etc        // Set the answer button text        let answerText = self.currentQuestion!.answers[index]        answer.setAnswerText(answerText)        // Set the IDentifIEr for each answer button        self.IDentifIEr = self.currentQuestion!.answerIDentifIEr[index]        // Add to the selection button array        self.answerbuttonArray.append(answer)}

所以我想我需要一些东西

// Set the IDentifIEr for each answer        self.IDentifIEr = self.currentQuestion!.answerIDentifIEr[index]

将标识符分配给按钮.

这样做的原因是我正在尝试实现一个决策树逻辑,这样我就可以跟踪每个被点击的答案按钮,以生成一个与最终结果相对应的代码字符串.

解决方法 使用Objective-C运行时,我们可以在运行时向类添加属性:
extension UIbutton {    private struct AssociatedKeys {        static var Descriptivename = "nsh_Descriptivename"    }    @IBInspectable var descriptivename: String? {        get {            return objc_getAssociatedobject(self,&AssociatedKeys.Descriptivename) as? String        }        set {            if let newValue = newValue {                objc_setAssociatedobject(                    self,&AssociatedKeys.Descriptivename,newValue as Nsstring?,UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC)                )            }        }    }}

添加@IBInspectable还允许我们通过Interface Builder设置descriptivename属性.

有关Objective-C运行时的更多信息,我建议您查看this NSHipster article.

总结

以上是内存溢出为你收集整理的ios – 在Swift中向UIButton添加字符串属性全部内容,希望文章能够帮你解决ios – 在Swift中向UIButton添加字符串属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1108687.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存