我似乎喜欢设计新的UIViews
并UIControls
实现自己的-drawRect:
方法。这对我来说效果很好,尤其是在使用UIViews
Interface Builder组合时。
但是在 Interface Builder 中组合它们很烦人,因为它们只是显示为无聊的普通矩形。
如果视图真的像内置控件那样呈现自己,那就太好了。
有什么方法可以构建我的项目,以便 Interface Builder 呈现我的自定义视图?
我似乎喜欢设计新的UIViews
并UIControls
实现自己的-drawRect:
方法。这对我来说效果很好,尤其是在使用UIViews
Interface Builder组合时。
但是在 Interface Builder 中组合它们很烦人,因为它们只是显示为无聊的普通矩形。
如果视图真的像内置控件那样呈现自己,那就太好了。
有什么方法可以构建我的项目,以便 Interface Builder 呈现我的自定义视图?
为此,您实际上必须为使用您的自定义类的 Interface Builder 创建一个插件。创建并安装插件后,您将能够像任何其他控件一样将类的实例(您的视图)拖放到另一个窗口/视图/任何东西上。要开始创建 IB 插件,请参阅Interface Builder Plug-In Programming Guide。另外,我推荐看看 Aaron Hillegass 的书,Cocoa Programming for Mac OS X。除了写得很好且易于理解之外,它还有一章是关于创建您自己的 IB Palette 控件的。
这可以通过用 . 标记你的 UIView 子类来实现@IBDesignable
。完成此操作后,您的自定义视图将在 Interface Builder 中呈现自己。您甚至可以通过将参数标记为 来添加可以配置的参数@IBInspectable
。这是一个斯威夫特的例子:
@IBDesignable class customView: UIView {
@IBInspectable var count: Int = 0
}
有一篇关于 NSHipster的文章提供了更多详细信息。