簡體   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