UIButton的iOS自定义标签

时间:2013-09-02 06:59:22

标签: ios cocoa-touch tags uibutton

由于我有许多按钮调用相同的目标方法,我需要将其他信息存储到每个UIButton。整数标记对我来说还不够,因为我需要保存至少两个整数值。

我有许多具有相同目标的按钮:

[button addTarget:self action:@selector(onButtonClick:) forControlEvents:UIControlEventTouchDown];

然后我可以获得发件人标签:

[((UIButton *) senter) tag];

我有一些NSDictionary值。根据按下的按钮,我需要更改NSDictionary中的值。 NSDictionary由行组成,行由行组成,由行组成。我需要知道要更改的元素的索引,这就是我需要保存自定义标记的原因,它应该包含行索引,子行索引,列索引等等。

我在考虑选择哪种方法:

  1. 将整数标记解析为NSString,然后将该字符串拆分为一部分。

  2. 创建一个自定义UIButton类,允许将标记存储为     对象

  3. 创建一个自定义UIButton类,其中包含很少的变量 需求。
  4. 甚至你可以建议更好的方法。

    提前致谢。

2 个答案:

答案 0 :(得分:0)

您始终可以以数字的形式创建唯一模式。您可以为不同目的创建不同的模式,然后您可以将所有这些模式合并为一个单独的模式,该模式本身就是一个数字,然后您可以将其保存为标记

例如,您可以将 12 小时 37 分钟和 20 秒的时间转换为< strong> 123720 这是一个数字本身,然后您可以将其用作标记

此处,您的按钮标记包含您需要的变量(小时,分钟和秒)。

您可以通过以下方式获取按钮标记的值:yourButton.tag。然后如您所述,您可以拆分标记的值并获取所有变量

更新:

看起来你有 table 类型的模式,并且在 table 的每个单元中,你有一些你想要制作的元素唯一标识。

因此,您将需要行号列号以使该元素唯一。在这种情况下,您可以使用(rownumber)(colnumber)等模式。

例如tag = 0503将为您提供第5行和第3列的组件。

这种方式没有错。你可以使用它。

答案 1 :(得分:0)

我认为您误解了视图标记的预期目的(或者您理解它,并试图滥用它:))。标签只是用于从另一个视图中识别一个视图,实际值不用于任何(或多);它当然不是为了存储模型的某些部分。

如果使用tag属性来标识按下了哪个按钮,则可以执行相应的逻辑。