什麼子類 而不是UIView
你可能會想繼承UIControl
。此類具有Target/Action模式構建的功能,您可以使用它來響應您的自定義控件生成的操作。出於這個特定原因,UIKit上的大多數元素(如按鈕和滑塊)從UIControl
繼承。
可視化你的子類 繪圖真的取決於你想要實現什麼以及你想要動畫的部分。您可以使用圖像,使用石英或OpenGL進行繪製,具體取決於您需要什麼或您喜歡什麼。只需使用該技術,以最簡單的方式達到預期的效果。多個圖像可以用來處理不同的狀態(按下等)或用於精靈動畫。 CALayers很容易旋轉或移動。
無論您使用哪種技術,您都可能使用傳入觸摸事件來控制動畫。在撥號控制的情況下,您可以根據y座標移動來控制旋轉量。
爲了說明:我如已使用的圖像如果只需要我的控制按壓例如當改變:只是交換圖像。我也很喜歡使用CALayer
,它可以讓您輕鬆地生成邊框,蒙版,漸變和角落半徑,所有動畫也都很容易。
在界面生成器中使用 使用桌面上的Cocoa可以爲自定義控件構建自定義IB調色板。 iOS版從來沒有這樣的功能,我不事IB插件可供的Xcode 4
所以目前處理自定義子類的唯一方法是通過使用IB一個UIView
,並在設定的「自定義類」字段Identity Inspector添加到您的自定義類的名稱。這樣你就可以看到你的佈局和尺寸。在Interface Builder中,它只是一個矩形,運行應用程序時,XIB將實際將該視圖反序列化到您的自定義類。
使用UIControl
時,您可以免費獲得目標/操作機制。因此,您可以將觸摸事件連接到IB中的任何對象,就像使用任何其他標準UIKit控件一樣。
有一點需要注意:如果您有自定義- initWith....:
選擇器,那些將不會被調用。你的類是從XIB反序列化的,所以你應該使用- initWithCoder:(NSCoder *)aDecoder;
作爲初始化。
而這一個是一個很好的教程http://www.thinkandbuild.it/how-to-build-a-custom-control-in-ios/ – MatterGoal 2013-04-21 17:22:40