妳可以通過創建壹個 UIView 的子類,然後為可視的價格範圍定做壹個 view。這對於應用程序內部來說,是 ok的,但是要想移植到別的程序中,就需要花更多的精力了。
最好的辦法是將構建壹個新的盡可能通用的 UI 控件,這樣就能在任意的合適場合中重用。這也是自定義控件的本質。
啟動 Xcode,File/New/Project,選中 iOS/Application/Single View Application 模板,然後點擊 Next。在接下來的界面中,輸入 CustomSliderExample 當做工程名,然後是 Organization Name 和 Organization Identifier,然後,壹定要確保選中 Swift 語言,iPhone 選中,Use Core Data 不要選。
最後,選擇壹個保存工程的地方並單擊 Create。
首先,我們需要做出決定的就是創建自定義控件需要繼承自哪個類,或者對哪個類進行擴展。
位了使自定義控件能夠在應用程序中使用,妳的類必須是 UIView 的壹個子類。
如果妳註意觀察蘋果的 UIKit 參考,會發現框架中的許多控件,如 UILabel 和 UIWebView 都是直接繼承自 UIView 的。然而,也有極少數,例如 UIButton 和 UISwitch 是繼自 UIControl 的。
註意:iOS 中 UI 組件的完整類繼承圖,請看 UIKit Framework 參考。
UIControl 實現了 target-action 模式,這是壹種將變化通知訂閱者的機制。UIControl 同樣還有壹些與控件狀態相關的屬性。在本文中的自定義空間中,將使用到 target-action 模式,所以從 UIControl 開始繼承使用將是壹個非常好的切入點。
在 Project Navigator 中右鍵單擊 CustomSliderExample,選擇 New File…,然後選擇 iOS/Source/Cocoa Touch Class 模板,並單擊 Next。將類命名位 RangeSlider,在 Subclass of 字段中輸入 UIControl,並確保語言是 Swift。然後單擊 Next,並在默認存儲位置中 Create 出新的類。
雖然編碼非常讓人愉悅,不過妳可能也希望盡快看到自定義控件在屏幕中熏染出來的模樣!在寫自定義控件相關的任何代碼之前,妳應該先把這個控件添加到 view controller中,這樣就可以實時觀察控件的演進程度。