UIControl的使用
UIControl介紹(一)
主要功能:
UIContol(控件是所有控件的基類 如:(UIButton)按鈕主要用于與用戶交互,通常情況下我們不會直接使用UIControl,而是子類化它。
常用屬性:
BOOL enabled
空間默認是啟用的,要禁用控件,可以將enabled屬性設置為NO,這樣將導致控件會略任何觸摸控件事件。被禁用后,控件還可以用不同的方式顯示自己,
比如變成灰色不可用。由空間的子類完成的,這個屬性卻存在于UIControl中。
實例演示:
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(40, 60, 100, 60)];button.backgroundColor = [UIColor orangeColor]; button.enabled = NO; [button addTarget:self action:@selector(onButton) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button];
(void)onButton{
NSLog(@"button被點擊"); }//不會有輸出結果,因為button的事件被禁用。</pre>
BOOL selected;
當用戶選中控件時,UIControl類會將其selected屬性設置為YES。子類有時使用這個屬性來讓其選擇自身,或者來表現不同的行為方式。
布局方式:
UIControlContentVerticalAlignment:垂直對齊方式
1.UIControlContentVerticalAlignmentCenter
2.UIControlContentVerticalAlignmentTop
3.UIControlContentVerticalAlignmentBottom
4.UIControlContentVerticalAlignmentFillUIControlContentHorizontalAlignment:水平對齊方式
1.UIControlContentHorizontalAlignmentCenter
2.UIControlContentHorizontalAlignmentLeft
3.UIControlContentHorizontalAlignmentRight
4.UIControlContentHorizontalAlignmentFillUIControl介紹(二)
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
UIControl類的提供的標準機制,來進行事件登記和接收。這可以指定控件在發生特定事件時,通知代理的一個方法。此方法用于注冊一個事件,事件可以用邏輯OR合并在一起,因此可以在一次單獨的addTarget調用中指定多個事件,下列事件為基類UIControl所支持,除非另有說明,也是用所有控件:
UIControlEventTouchDown
單點觸摸按下事件:用戶點觸屏幕,或者又有新手指落下的時候觸發
例如:[button addTarget:self action:@selector(onButton) forControlEvents:UIControlEventTouchDown];UIControlEventTouchDownRepeat
多線觸摸按下事件,點觸計數大于1:用戶按下兩根手指以上時候觸發
UIControlEventTouchDragInside
當一次觸摸在控件窗口內拖動時
UIControlEventTouchDragUotside
當一次觸摸在控件窗口之外拖動時
UIControlEventTouchDragEnter
當一次觸摸從控件窗口之外拖動到內部時
UIControlEventTouchExit
當以一次觸摸從控件窗口內部拖動到外部時
UIControlEventTouchUpInside
所有在控件之內觸摸抬起事件
UIControlEventTouchOutside
所有在控件之外觸摸抬起事件(點觸必須開始與控件內部才會發送通知)
UIControlEventTouchCancel
所有觸摸取消事件,即依稀觸摸因為放上了太多手指而被取消或者被上鎖或者電話呼叫打斷
UIControlEventTouchChanged
當控件的值發生改變時,發送通知。用于滑塊,分段控件以及其他取值的控件
UIControlEventEditingDidBegin
當文本控件中開始編輯是發送通知
UIControlEventEditingChanged
當文本控件的文本被改變時發送通知
UIControlEventEditingDidEnd
當文本控件編輯結束時發送通知
UIControlEventEditingDidOnEit
當文本控件內通過按下回車鍵(或等價行為)結束編輯時,發送通知
UIControlEventEditingEvents
通知所有關于文本編輯的事件
UIControlEventAllEvents
通知所有事件
UIControl介紹(三)
常用方法
- (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
刪除一個或多個事件的響應動作,可以是使用UIControl類的removeTarget.使用nil值就可以將給定事件的目標所有動作刪除:
注冊事件的時候,方法簽名有兩種:
- -(void)onEventMethod:(UIControl *)sender;
- -(void)onEventMethod;