4

似乎使文本在 iOS 上表现得像链接的一种常见方法是使其成为 UIButton,但我注意到 UIButtonaddTarget或gestureRecognizeraddTarget都没有可以在按下按钮时传递给方法的参数?

情况是,从服务器上,我们可能会返回一个单词列表,例如“pineapple”、“apple”、“orange”,并且数字可能会有所不同。这些词显示在屏幕上,按下该词将调用 ViewController 来替换主视图控制器。

似乎一种方法是使用 UIButton 的标签,所以我们在设置按钮时,给它一个标签 0,并在当前视图或视图控制器的另一个数组中,使元素 0 指向一个 NSString 对象,其中包含“菠萝”一词。所以在处理程序中,可以获取标签,并且可以使用它来检索字符串。但这是唯一的方法,因为它似乎不是很结构化。有没有更好的办法?

4

2 回答 2

1

我下意识的回答是简单地建议你将UIButton. 每当您想向现有类添加属性时,“子类”是您想到的第一个答案。但是当我尝试对 进行子类化时UIButton,它并没有很好地工作。搜索“UIButton 子类”时,我发现这是一个众所周知的问题,有几个推荐的解决方案:

我已经尝试过创建具有关联引用的类别以及仅将 a 子类化的简单方法UIView,并将所需的按钮作为其子视图。两种方法都可以正常工作。UIButton但是仅子类化的直观有吸引力的选择效果不佳

但是,虽然为对象添加属性的各种变通方法都UIButton有效,但它们似乎不够直观,我倾向于回到简单的东西,例如使用tag数组或字典中的数字,而不是追求这些繁琐的按钮子类化技巧。

于 2012-09-23T04:25:24.763 回答
0

创建一个可变字典。要将单词与按钮相关联,请将包含在 nsnumber 中的按钮地址添加为键,将单词添加为对象。当按钮被按下并与“发送者”一起发送操作消息时,您可以从字典中检索当前单词。

于 2012-09-23T13:54:56.667 回答