我来自 C# 和 Winforms 的世界,在那里我可以构建自定义 UserControl 并将其拖到窗体上,就好像它是一个通用控件一样。有没有办法在 Xcode 和 Interface Builder 中做到这一点?
我只看到了如何在运行时设置视图,但我想在设计时在我的窗口上看到它。例如,我希望我的自定义视图列在可用控件中。
谢谢!
西蒙
我来自 C# 和 Winforms 的世界,在那里我可以构建自定义 UserControl 并将其拖到窗体上,就好像它是一个通用控件一样。有没有办法在 Xcode 和 Interface Builder 中做到这一点?
我只看到了如何在运行时设置视图,但我想在设计时在我的窗口上看到它。例如,我希望我的自定义视图列在可用控件中。
谢谢!
西蒙
Interface Builder不会向对象库添加(或允许添加,因为 IB 插件已被废弃)自定义对象。您只能拖入现有/预设对象,但您可以让 IB 将它们实例化为子类的实例,只要它们以相同的方式实例化即可。
例如,在自定义视图中拖动并将类设置为 MyCustomViewClass
,或在滚动视图中拖动并将类设置为 MyCustomScrollView
,或者在对象中拖动并将类设置为 CustomObject
,等等。
这是在 Interface Builder 中使用自定义控件的首选方式。
基本上只是扯掉rdelmar的评论......但我认为一张图片会有所帮助
将普通视图拖入 IB,然后选择它并执行此操作。
您在 IB 中创建的每个窗口都有一个视图作为其第一个子组件。您不需要为其创建单独的自定义视图。如果你真的是子类化它只需在检查器中更改类名。
除了这个线程中提到的关于将自定义视图的名称添加到视图控制器的XIB
文件中的内容之外,您还需要在自定义视图中进行覆盖 initWithCoder
。