2009-01-30 19 views
18

我似乎喜歡設計新的UIViewsUIControls,它們實現了自己的-drawRect:方法。這對我很好,特別是當使用UIViewsInterface Builder中編寫時。如何在InterfaceBuilder中顯示自定義UIViews?

但在Interface Builder撰寫他們很討厭,因爲他們只是顯示爲純無聊的矩形。

如果視圖實際上會像內置控件一樣呈現自己,那將會很棒。

有沒有什麼辦法可以構建我的項目,這樣Interface Builder將呈現我的自定義視圖?

回答

18

爲了做到這一點,您實際上必須爲Interface Builder創建一個使用您的自定義類的插件。一旦你創建並安裝了你的插件,你就可以將你的類的實例(你的視圖)拖放到另一個窗口/視圖/上,就像任何其他控件一樣。要開始創建IB插件,請參閱Interface Builder Plug-In Programming Guide。另外,我推薦看看Aaron Hillegass的書,Cocoa Programming for Mac OS X。除了寫得很好並且易於理解外,它還有創建自己的IB Palette控件的章節。

+20

只是對2012年到達此帖的人發表評論:Xcode 4不再支持IB插件。你運氣不好。 – 2012-12-08 12:27:42

+0

感謝@RandyMarsh爲了節省我30-60分鐘:) – 2013-01-06 19:33:39

1

這可以通過用@IBDesignable標記您的UIView子類來實現。一旦你這樣做了,你的自定義視圖將在Interface Builder中呈現出來。您甚至可以添加可通過標記爲@IBInspectable進行配置的參數。以下是一個Swift示例:

@IBDesignable class customView: UIView { 

    @IBInspectable var count: Int = 0 

} 

有一個article on NSHipster提供了更多詳細信息。

相關問題