0

对于您需要管理的每个 IBOutlet,您都需要有一个指针,因此也需要有一个属性。大多数时候属性需要合成,然后在 deallloc 和 viewDidUnload 中释放。所以实际上,你需要重复编写一些代码。你得到的是易于使用和代码清晰。现在,通过 [self.view viewWithTag:] 使用和访问来自 IB 的对象可以节省一点代码空间,但会带来一些不确定性,因为您需要记住或检查 IB 的对象标签。那么,为什么有人会费心使用 viewWithTag 呢?

4

3 回答 3

1

就我而言,我偶尔需要动态地将按钮添加到视图中,并且需要知道哪个按钮被按下,或者调用其他按钮。

这样我就可以做到:

UIButton *desiredButton = [myView.viewWithTag:theTag]

我使用在枚举中声明按钮类型(或任何视图类型),以便以后可以安全地分配和调用:

typedef enum {
  ButtonTypeDelete = 1,
  ButtonTypeCancel = 2,
  ButtonTypeAccept = 3,
  ....
  ..
} ButtonType
于 2011-08-12T15:28:44.370 回答
1

标签有很多用途,也不必为每个视图元素都有一个出口。

  1. UITextfields要填写长表格,这里的标签可以用来自动移动光标到下一个字段
  2. 同一个 IBAction 可以连接多个按钮,并且可以基于标签执行操作。

想我是否应该将此答案设为 wiki,以便其他人可以为它做出贡献。将等待其他人将他们的答案放在这里。

于 2011-08-12T15:29:13.273 回答
0

您可以在不会从 NIBS 加载界面的任何地方使用它。我个人从不使用 interfacebuilder 并且不存储指向您创建的所有子视图(可能很多)的指针通常很有帮助,而是标记它们并稍后使用它们的标记识别它们。例如,我在 UITableView 的 headerview 中使用这种技术,我必须根据用户输入进行更改。

于 2011-08-12T15:27:06.167 回答