1、UIButon控件詳解ide
<一>UIButton與UILabel的區別與聯繫spa
聯繫:都是UIView的直接或間接的子類,都具備UIView的屬性和行爲,UIView表明及其子類都表明一個矩形區域。orm
區別:繼承
一、UILabel是直接繼承UIView,而UIButton是間接繼承其父類UIControl是直接繼承UIview事件
2、UIView有一個屬性叫作userInteractionEnable(該屬性決定是否可以接受並響應事件),UILabel爲NO,UIcontrol及其全部的子類的userInteractionEnable屬性的值默認爲YES,UIControl及其子類響應事件每每是經過addTarget方法,天加點擊事件圖片
<二>UIButton的建立rem
一、經過默認樣式建立get
二、經過自定義建立it
<三>屬性io
配置按鈕標題的屬性和方法:
- titleLabel屬性:按鈕標題的標籤
- titleForState:方法:指定狀態下的按鈕標題
- setTitle:forState:方法:設置指定狀態下按鈕的標題
- titleColorForState:方法:指定狀態下的按鈕標題顏色
- setTitleColor:forState:方法:設置指定狀態下按鈕標題的顏色
- setTitleShadowColor:forState:方法:設置指定狀態下按鈕標題陰影的顏色
配置按鈕顯示的方法:
- backgroundImageForState:方法:得到指定狀態下的背景圖
- setBackgroundImage:forState:方法:設置指定狀態下的背景圖
- imageForState:方法:得到指定狀 態下的按鈕圖片
- setImage:forState:方法:設置指定狀態下的按鈕圖片
配置邊距的屬性:
- contentEdgeInsets屬性:內容的邊距
- titleEdgeInsets屬性:標題的邊距
- imageEdgeInsets屬性:圖片的邊距
獲取按鈕當前狀態的屬性:
- buttonType屬性:可能的取值包括UIButtonTypeCustom、UIButtonTypeSystem、UIButtonTypeDetailDisclosure、UIButtonTypeInfoLight、UIButtonTypeInfoDark、UIButtonTypeContactAdd、UIButtonTypeRounedRect(過期)。
- currentTitle屬性:按鈕上當前顯示的標題
- currentTitleColor屬性:當前標題顏色
- currentImage屬性:按鈕上當前顯示的圖片
- currentBackgroundImage屬性:按鈕上當前顯示的背景圖片
- imageView屬性:按鈕上的圖片視圖
繼承自UIControl的屬性和方法:
- addTarget:action:forControlEvents:方法:將爲事件添加的消息接受者和對應的動做加入事件派發表,簡而言之就是爲控件綁定事件處理的回調方法
- removeTarget:action:forControlEvents:方法:與上面方法的做用相反
- enabled屬性:控件是啓動仍是禁用
- state屬性:控件所處的狀態
###UIButton的經常使用事件和狀態###
咱們先說一下UIControl的全部可能的事件。
事件類型|說明
:--|:--
UIControlEventTouchDown|單點觸摸按下事件,用戶點觸屏幕,或者又有新手指落下的時候
UIControlEventTouchDownRepeat|多點觸摸按下事件,點觸計數大於1:用戶按下第2、3、或第四根手指的時候
UIControlEventTouchDragInside|當一次觸摸在控件窗口內拖動時
UIControlEventTouchDragOutside|當一次觸摸在控件窗口以外拖動時
UIControlEventTouchDragEnter|當一次觸摸從控件窗口以外拖動到內部時
UIControlEventTouchDragExit|當一次觸摸從控件窗口內部拖動到外部時
UIControlEventTouchUpInside|全部在控件以內觸摸擡起事件
UIControlEventTouchUpOutside|全部在控件以外觸摸擡起事件(點觸必須開始與控件內部纔會發送通知)
UIControlEventTouchCancel|全部觸摸取消事件,即一次觸摸由於放上了太多手指而被取消,或者被上鎖或者電話呼叫打斷
UIControlEventTouchChanged|當控件的值發生改變時,發送通知。用於滑塊、分段控件、以及其餘取值的控件。你能夠配置滑塊控件什麼時候發送通知,在滑塊被放下時發送,或者在被拖動時發送
UIControlEventEditingDidBegin|當文本控件中開始編輯時發送通知
UIControlEventEditingChanged|當文本控件中的文本被改變時發送通知
UIControlEventEditingDidEnd|當文本控件中編輯結束時發送通知
UIControlEventEditingDidOnExit|當文本控件內經過按下回車鍵(或等價行爲)結束編輯時,發送通知
UIControlEventAlltouchEvents|通知全部觸摸事件
UIControlEventAllEditingEvents|通知全部關於文本編輯的事件
UIControlEventAllEvents|通知全部事件
對於UIButton來講,可能絕大多數處理的都是UIControlEventTouchUpInside事件,簡單的說就是按鈕點擊的事件。