是否可以在自定义视图中创建@IBOutlet?

时间:2017-12-12 00:11:18

标签: ios swift xcode iboutlet

我在我的一个视图控制器中创建了一个关于故事板的视图,并意识到我需要重用它。然后我为UIView创建了一个子类来合并代码。我在故事板中选择了视图,并将类更改为我的自定义视图类。现在我想为视图中的几个组件创建@IBOutlets(在本例中为2个文本字段)。当我尝试从故事板拖放到自定义视图文件时,它允许我创建的唯一内容是@IBAction和@IBOutlet是灰色的。

我尝试在代码中手动创建@IBOutlet,然后从圆圈拖到故事板上的组件。一切似乎都有效(即我看到小黑色弹出窗口中的连接以及变量旁边的圆圈填充。但是当我运行应用程序时,2个字段为零。

为什么我只能创建行动而不是出口? (我是iOS开发人员的新手。)

2 个答案:

答案 0 :(得分:6)

不需要XIB。

  1. 在自定义UIView类中手动编写IBOutlet。

    @IBOutlet weak var container: UIView!

  2. 打开故事板并在左侧的“文档大纲”面板中选择自定义视图。

  3. 打开右侧的Connections Inspector。您现在可以从Outlet拖动到Document Outline面板中的自定义视图,以连接它们。

  4. Connect custom view's IBOutlet to view in Interface Builder

答案 1 :(得分:5)

如果你想重用一个UIView,那么最好创建一个视图的xib和一个UIView的自定义类。然后将xib类中的文件所有者更改为自定义类。然后,您可以将视图中组件的IBOutlet拖放到自定义类。在故事板中,您可以使用自定义视图并将视图类的名称更改为自定义视图。现在将IBOutlets从故事板拖放到UIView。你可以看到关于如何做的教程视频,我已经为你做了。 https://youtu.be/IrgH522lbfA