如何在不使用 IBOutlet 的情况下以编程方式引用视图

2nd*_*ife 3 interface-builder uiviewcontroller ios uistoryboard

我是 iOS 编程新手,正在使用 XCode 学习故事板。我的问题是

我已经添加了我想要使用 IB 的视图,但我不希望它们在 IB 中使用 Ctrl+Drag 连接到我的 ViewController,而是以编程方式执行相同的操作。我见过建议在代码中创建视图实例并使用 addSubView() 添加它们(通过设置框架)的帖子。但我不想在代码中硬编码我的框架和尺寸,我更喜欢 IB。我只需要在需要时参考它们即可。

在 android 中,我们可以通过布局 XML 上的 getIdByName() 执行相同的操作。我正在寻找类似的东西。

谢谢

小智 5

在 IB 中,您可以设置Tag视图的属性,然后使用以下方法在代码中引用它:

int buttonTagNumber = 2;
UIButton *myTaggedButton = (UIButton *)[self.view viewWithTag:buttonTagNumber];
Run Code Online (Sandbox Code Playgroud)

标签只是一个int,您可以拥有任意数量的标签。请注意,如果您在一个层次结构中的 2 个不同视图上具有相同的标记,则该行为是未定义的,它将抓取它找到的第一个视图。