由于我有许多按钮调用相同的目标方法,我需要将其他信息存储到每个UIButton。整数标记对我来说还不够,因为我需要保存至少两个整数值。
我有许多具有相同目标的按钮:
[button addTarget:self action:@selector(onButtonClick:) forControlEvents:UIControlEventTouchDown];
然后我可以获得发件人标签:
[((UIButton *) senter) tag];
我有一些NSDictionary值。根据按下的按钮,我需要更改NSDictionary中的值。 NSDictionary由行组成,行由行组成,由行组成。我需要知道要更改的元素的索引,这就是我需要保存自定义标记的原因,它应该包含行索引,子行索引,列索引等等。
我在考虑选择哪种方法:
将整数标记解析为NSString,然后将该字符串拆分为一部分。
创建一个自定义UIButton类,允许将标记存储为 对象
甚至你可以建议更好的方法。
提前致谢。
答案 0 :(得分:0)
您始终可以以数字的形式创建唯一模式。您可以为不同目的创建不同的模式,然后您可以将所有这些模式合并为一个单独的模式,该模式本身就是一个数字,然后您可以将其保存为标记。
例如,您可以将 12 小时 37 分钟和 20 秒的时间转换为< strong> 123720 这是一个数字本身,然后您可以将其用作标记。
此处,您的按钮标记包含您需要的变量(小时,分钟和秒)。
您可以通过以下方式获取按钮标记的值:yourButton.tag
。然后如您所述,您可以拆分标记的值并获取所有变量。
更新:
看起来你有 table 类型的模式,并且在 table 的每个单元中,你有一些你想要制作的元素唯一标识。
因此,您将需要行号和列号以使该元素唯一。在这种情况下,您可以使用(rownumber)(colnumber)
等模式。
例如,tag = 0503
将为您提供第5行和第3列的组件。
这种方式没有错。你可以使用它。
答案 1 :(得分:0)
我认为您误解了视图标记的预期目的(或者您理解它,并试图滥用它:))。标签只是用于从另一个视图中识别一个视图,实际值不用于任何(或多);它当然不是为了存储模型的某些部分。
如果使用tag属性来标识按下了哪个按钮,则可以执行相应的逻辑。