对于您需要管理的每个 IBOutlet,您都需要有一个指针,因此也需要有一个属性。大多数时候属性需要合成,然后在 deallloc 和 viewDidUnload 中释放。所以实际上,你需要重复编写一些代码。你得到的是易于使用和代码清晰。现在,通过 [self.view viewWithTag:] 使用和访问来自 IB 的对象可以节省一点代码空间,但会带来一些不确定性,因为您需要记住或检查 IB 的对象标签。那么,为什么有人会费心使用 viewWithTag 呢?
问问题
554 次
3 回答
1
就我而言,我偶尔需要动态地将按钮添加到视图中,并且需要知道哪个按钮被按下,或者调用其他按钮。
这样我就可以做到:
UIButton *desiredButton = [myView.viewWithTag:theTag]
我使用在枚举中声明按钮类型(或任何视图类型),以便以后可以安全地分配和调用:
typedef enum {
ButtonTypeDelete = 1,
ButtonTypeCancel = 2,
ButtonTypeAccept = 3,
....
..
} ButtonType
于 2011-08-12T15:28:44.370 回答
1
标签有很多用途,也不必为每个视图元素都有一个出口。
- UITextfields要填写长表格,这里的标签可以用来自动移动光标到下一个字段
- 同一个 IBAction 可以连接多个按钮,并且可以基于标签执行操作。
想我是否应该将此答案设为 wiki,以便其他人可以为它做出贡献。将等待其他人将他们的答案放在这里。
于 2011-08-12T15:29:13.273 回答
0
您可以在不会从 NIBS 加载界面的任何地方使用它。我个人从不使用 interfacebuilder 并且不存储指向您创建的所有子视图(可能很多)的指针通常很有帮助,而是标记它们并稍后使用它们的标记识别它们。例如,我在 UITableView 的 headerview 中使用这种技术,我必须根据用户输入进行更改。
于 2011-08-12T15:27:06.167 回答