将自定义控件添加到Interface Builder(IN)Xcode

时间:2013-06-09 03:42:19

标签: objective-c xcode interface-builder

我做了这个精彩的教程: Photoshop Tutorial For Developers: Creating a Custom UISlider 并带来了两个问题:

  1. 上面的示例使每个 UISlider都自定义。您是否可以将UISlider子类化并调整此代码以使其成为可以调用的自己的类?

  2. 此外,您是否可以在Interface Builder中的对象资源管理器中使用此自定义控件,因此您可以像在UIKit中的任何其他内容一样将其拖放到视图中?

1 个答案:

答案 0 :(得分:1)

CocoaTouch类的文档通常会指示某个类是否不是为子类设计的。在UISlider的情况下,还有一些自定义外观的说明。

Interface Builder中的自定义组件

要在Interface Builder中使用自定义组件,必须使用“object”组件,并为自定义类指定类类型。不幸的是,这不会呈现任何视觉队列,例如核心UIKit类。

您自己的插件

有可能提供一个调整Xcode的插件,但这不是一件小事,因为没有官方文档,所以有必要在GitHub等上搜索开源插件并研究代码。即使这样,该插件也可能会破坏后续版本的Xcode。

推荐方法

Interface Builder是一项了不起的技术,但对于更复杂的应用程序,我建议在代码中实现视图(覆盖VC中的loadView)。原因如下:

  • 促进更好的封装和重用。您可以使用UIKit组件组合自己的组件(例如组合与继承),并为它们提供自定义OO接口。与视图控制器中的大量IB插座相比,这会导致重复使用不良。

  • 胖控制器并不真正尊重MVC范例。

  • 更灵活,更流畅。并非所有属性都通过IB暴露,因此在复杂的情况下,很难知道在哪里看。是IB或代码中的设置吗?例如,自定义字体。

  • Xibs在多人团队中融合真的很棘手。

相关问题