似乎在 iOS 上使文本表现得像链接的常见方法是将其设为 UIButton,但我注意到 UIButton 的 addTarget
或 gestureRecognizer 的 addTarget
两者没有可以在按下按钮时传递给方法的参数?
情况是,我们可能会从服务器取回一个单词列表,例如“pineapple”、“apple”、“orange”,并且数字可能会有所不同。这些词显示在屏幕上,按下该词将调用 ViewController 来替换主视图 Controller 。
好像有一种方法是使用UIButton的tag,所以我们在设置button的时候,给它一个tag为0,在当前view或者viewcontroller的另一个数组中,让element 0指向一个NSString对象,包含单词“菠萝”。因此在处理程序中,可以获取标签,并可以使用它来检索字符串。但这是唯一的方法吗,因为它看起来不太结构化。有没有更好的办法?
最佳答案
我下意识的回答是简单地建议您对 UIButton
进行子类化。每当您想为现有类添加属性时,“子类”是第一个想到的答案。但是当我尝试子类化 UIButton
时,它并没有很好地工作。搜索“UIButton 子类”我发现这是一个众所周知的问题,有几个推荐的解决方案:
- Subclass UIButton to add a property
- objective C: Buttons created from subclass of UIButton class not working
- create uibutton subclass
我尝试过创建 category with associative references 以及仅子类化 UIView
的简单方法,并使所需的按钮成为它的 subview 。两种方法都可以正常工作。但是,仅对 UIButton
进行子类化这一直觉上有吸引力的选项效果不佳。
但是,虽然为 UIButton
对象添加属性的各种变通方法有效,但它们似乎不够直观,我倾向于回到简单的方法,例如使用 在数组或字典中标记
数字,而不是追求这些繁琐的按钮子类化技术。
关于iphone - 在 iOS 上,如何制作 "links"的动态列表或按钮调用带有字符串参数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12549396/