簡體   English   中英

如何在Interface Builder(Xcode)中添加自定義控件

[英]How to add custom controls in Interface Builder (Xcode)

所以我創建了一個繼承自UIView的自定義控件,我想在Interface Builder中使用它。 我知道我可以添加一個UIView並將其類名設置為我的自定義控件類名,但它只出現在運行時; 在界面構建器中,它只是一個常規的UIView。 我想在界面構建器中處理UI時看到控件。

謝謝

Xcode 6添加了一種支持,用於放置和預覽自定義控件。 請參閱關於“創建在Interface Builder中呈現的自定義視圖”的官方Apple文檔: https//developer.apple.com/library/ios/recipes/xcode_help-IB_objects_media/chapters/CreatingaLiveViewofaCustomObject.html

簡答:你做不到。 (2015年4月14日更改:見末尾編輯)

Xcode 3用於支持接口構建器插件,但他們在Xcode 4中刪除了它,並且從我讀過的內容中,它不會再添加它。

您還無法查看/查看自定義UIView子類的自定義出口/屬性。

但是有一種設置這些屬性的方法。 選擇自定義視圖對象,選擇標識檢查器,然后查找標題為“用戶定義的運行時屬性”的部分。 雖然您可以指定的數據類型數量有限,但您可以在此處向視圖的屬性或子屬性添加KVC密鑰路徑引用。 此外,如果密鑰路徑在運行時不是有效的KVC引用,則程序將崩潰,並且會出現一個神秘的,難以發現的錯誤,即“對象MyCustomView與鍵foo不符合鍵值”。 如果您忘記了設置用戶定義的運行時屬性,您可以將頭發拉出數小時,試圖找出錯誤的來源。

編輯:(2015年4月14日)

在Xcode 6中,Apple添加了一個新的IBDesignable屬性,您可以將其添加到自定義UIView類(或Mac OS上的NSView類)中,以便在IB編輯器中直接顯示視圖。 還有一個IBInspectable屬性,可讓您從IB查看和編輯視圖的某些屬性。 這就像我們自Xcode 4.0以來的“用戶定義的運行時屬性”選項,但更清晰,因為它向您顯示了您可以更改的屬性,而不是您必須鍵入KVC鍵,並且如果您冒着崩潰您的應用程序的風險弄錯了。 但是,您只能指定非常有限數量的類型(字符串/本地化字符串,數字,顏色,布爾值,點,大小,矩形,范圍,圖像或零值)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM