標籤:
主要功能:
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的事件被禁用。
BOOL selected;
當使用者選中控制項時,UIControl類會將其selected屬性設定為YES。子類有時使用這個屬性來讓其選擇自身,或者來表現不同的行為方式。
布局方式:
UIControlContentVerticalAlignment:垂直對齊
1.UIControlContentVerticalAlignmentCenter //置中
2.UIControlContentVerticalAlignmentTop //置頂
3.UIControlContentVerticalAlignmentBottom //底部
4.UIControlContentVerticalAlignmentFill //填充全部
UIControlContentHorizontalAlignment:水平對齊
1.UIControlContentHorizontalAlignmentCenter //置中
2.UIControlContentHorizontalAlignmentLeft //居左
3.UIControlContentHorizontalAlignmentRight //居右
4.UIControlContentHorizontalAlignmentFill //填充全部
UIControl介紹(二)- (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;
iOS:轉載:UIControl的使用