0

由于我有许多按钮调用相同的目标方法,因此我需要为每个 UIButton 存储附加信息。整数标签对我来说是不够的,因为我需要保存至少两个整数值。

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

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

然后我可以得到一个发件人标签:

[((UIButton *) senter) tag];

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

我正在考虑选择哪种方法:

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

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

  3. 创建一个自定义 UIButton 类,其中包含一些满足我需要的变量。

甚至您也可以提出更好的方法。

提前致谢。

4

2 回答 2

0

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

如果您使用 tag 属性来识别按下了哪个按钮,那么您可以执行适当的逻辑。

于 2013-09-02T07:22:14.840 回答
0

您始终可以以数字的形式创建独特的模式。你可以为不同的目的创建不同的模式,然后你可以将所有这些模式合并成一个模式,它本身就是一个数字,然后你可以将它保存为一个标签

例如,您可以将12小时3720秒的时间转换为123720,它本身就是一个数字,然后您可以将其用作标签

在这里,您的按钮标签包含您需要的变量(小时、分钟和秒)。

您可以通过 : 获取按钮标签的值yourButton.tag。然后正如您提到的,您可以拆分标签的值并获取所有变量

更新 :

看起来您有一种表格模式,并且在table的每个单元格中,您都有一些要唯一标识的元素。

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

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

这种方式没有任何问题。你可以使用它。

于 2013-09-02T07:06:59.767 回答