1:繼承關係:網絡
UI控件繼承UIView,UIView繼承UIResponder,UIResponder爲用戶操做的響應者。ide
2:控件分類:spa
活動控件:可觸發各種事件。繼承UIControl基類。繼承
靜態控件:基本用於顯示,繼承UIView基類。常見的有UILabel,UIImageView,UIScrollView。事件
被動控件:用於接收用戶輸入的值。好比UITextField.rem
我以爲只要看某個UI控件繼承哪一個基類就好了。繼承UIControl的活動控件,有一些通用的行爲與方法。get
3:繼承UIControl基類的控件it
能完成一系列的用戶交互。io
添加事件:event
-(void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)events;
控件狀態:
Default:默認 Highlighted:高亮(用highlighted來判斷) Selected:選中(用selected來判斷) Disabled:禁用(用enabled來判斷)。
以button爲例,能夠爲不一樣的狀態設置不一樣的現實。
事件說明:(摘自網絡)
事件能夠用邏輯OR合併在一塊兒,所以能夠再一次單獨的addTarget調用中指定多個事件。下列事件爲基類UIControl所支持,除非另有說明,也適用於全部控件。
UIControlEventTouchDown 單點觸摸按下事件:用戶點觸屏幕,或者又有新手指落下的時候。
IControlEventTouchDownRepeat 多點觸摸按下事件,點觸計數大於1:用戶按下第2、3、或第四根手指的時候。
說明:屢次重複按下時,事件序列是這樣的:
UIControlEventTouchDown ->
(UIControlEventTouchUpInside) ->
UIControlEventTouchDown ->
UIControlEventTouchDownRepeat ->
(UIControlEventTouchUpInside) ->
UIControlEventTouchDown ->
UIControlEventTouchDownRepeat ->
(UIControlEventTouchUpInside) ->
。。。。。
UIControlEventTouchDragInside 當一次觸摸在控件窗口內拖動時。
UIControlEventTouchDragOutside 當一次觸摸在控件窗口以外拖動時。
UIControlEventTouchDragEnter 當一次觸摸從控件窗口以外拖動到內部時。
UIControlEventTouchDragExit 當一次觸摸從控件窗口內部拖動到外部時。
UIControlEventTouchUpInside 全部在控件以內觸摸擡起事件。
UIControlEventTouchUpOutside 全部在控件以外觸摸擡起事件(點觸必須開始與控件內部纔會發送通知)。
UIControlEventTouchCancel 全部觸摸取消事件,即一次觸摸由於放上了太多手指而被取消,或者被上鎖或者電話呼叫打斷。
UIControlEventTouchChanged 當控件的值發生改變時,發送通知。用於滑塊、分段控件、以及其餘取值的控件。你能夠配置滑塊控件什麼時候發送通知,在滑塊被放下時發送,或者在被拖動時發送。
UIControlEventEditingDidBegin 當文本控件中開始編輯時發送通知。
UIControlEventEditingChanged 當文本控件中的文本被改變時發送通知。UIControlEventEditingDidEnd當文本控件中編輯結束時發送通知。
UIControlEventEditingDidOnExit 當文本控件內經過按下回車鍵(或等價行爲)結束編輯時,發送通知。
UIControlEventAlltouchEvents 通知全部觸摸事件。
UIControlEventAllEditingEvents 通知全部關於文本編輯的事件。
UIControlEventAllEvents 通知全部事件。除了默認事件之外,自定義控件類還能夠用0x0F000000到0x0FFFFFFF之間的值,來定義他們本身的時間。
要刪除一個或多個事件的相應動做,可使用UIControl類的removeTarget方法。使用nil值就能夠將給定事件目標的全部動做刪除
修改控件顯示外觀,能夠修改控件的layer。具體查layer資料。