繁体   English   中英

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

[英]Adding custom controls to Interface Builder (IB) Xcode

我做了这个精彩的教程: 开发人员用的Photoshop教程:创建一个自定义UISlider ,但遇到两个问题:

  1. 上面的示例对每个 UISlider进行了自定义。 您可以仅将UISlider子类化并调整此代码,使其成为可以调用的自己的类吗?

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

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

Interface Builder中的自定义组件

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

您自己的插件

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

推荐方法

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

  • 促进更好的封装和重用。 您可以使用UIKit组件组成自己的组件(例如,合成与继承),并为其提供自定义的OO接口。 将其与视图控制器中的许多IB插座进行对比,这将导致不良的重用性。

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

  • 更加灵活流畅。 并非所有属性都通过IB公开,因此在复杂情况下,很难知道在哪里查找。 该设置是IB还是代码? 例如,自定义字体。

  • Xibs在多人团队中合并确实很棘手。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM