來自:
http://blog.163.com/cz_jdton/blog/static/92732504201282543017312/
UIControlEventTouchDown
單點觸摸按下事件:使用者點觸螢幕,或者又有新手指落下的時候。
UIControlEventTouchDownRepeat
多點觸摸按下事件,點觸計數大於1:使用者按下第二、三、或第四根手指的時候。
UIControlEventTouchDragInside
當一次觸摸在控制項視窗內拖動時。
UIControlEventTouchDragOutside
當一次觸摸在控制項視窗之外拖動時。
UIControlEventTouchDragEnter
當一次觸摸從控制項視窗之外拖動到內部時。
UIControlEventTouchDragExit
當一次觸摸從控制項視窗內部拖動到外部時。
UIControlEventTouchUpInside
所有在控制項之內觸摸抬起事件。
UIControlEventTouchUpOutside
所有在控制項之外觸摸抬起事件(點觸必須開始與控制項內部才會發送通知)。
UIControlEventTouchCancel
所有觸摸取消事件,即一次觸摸因為放上了太多手指而被取消,或者被上鎖或者撥打電話打斷。
UIControlEventTouchChanged
當控制項的值發生改變時,發送通知。用於滑塊、分段控制項、以及其他取值的控制項。你可以配置滑塊控制項何時發送通知,在滑塊被放下時發送,或者在被拖動時發送。
UIControlEventEditingDidBegin
當文本控制項中開始編輯時發送通知。
UIControlEventEditingChanged
當文本控制項中的文本被改變時發送通知。
UIControlEventEditingDidEnd
當文本控制項中編輯結束時發送通知。
UIControlEventEditingDidOnExit
當文本控制項內通過按下斷行符號鍵(或等價行為)結束編輯時,發送通知。
UIControlEventAlltouchEvents
通知所有觸摸事件。
UIControlEventAllEditingEvents
通知所有關於文本編輯的事件。
UIControlEventAllEvents
通知所有事件。
執行個體:
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
// btn.frame = rect_screen;
btn.frame = CGRectMake(frame.size.width - 20.0f - 30.0f, frame.size.height - 50.0f, 30.0f, 50.0f);
btn.backgroundColor = [UIColor blueColor];
// UIControlEventTouchDragInside
// UIControlEventTouchDragOutside
[btn addTarget:self action:@selector(dragInside) forControlEvents:UIControlEventTouchDragInside];
[btn addTarget:self action:@selector(dragOutside) forControlEvents:UIControlEventTouchDragOutside];
// dismissView
[btn addTarget:self action:@selector(upInside) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:btn];
return self;
}
- (void)dragInside
{
NSLog(@"dragInside...");
}
- (void)dragOutside
{
NSLog(@"dragOutside...");
}
- (void)upInside
{
NSLog(@"upInside...");
}
長按事件
UIButton *aBtn=[UIButton buttonWithType:UIButtonTypeCustom];
[aBtn setFrame:CGRectMake(40, 100, 60, 60)];
[aBtn setBackgroundImage:[UIImage imageNamed:@"111.png"]forState:UIControlStateNormal];
//button點擊事件
[aBtn addTarget:self action:@selector(btnShort:)forControlEvents:UIControlEventTouchUpInside];
//button長按事件
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:selfaction:@selector(btnLong:)];
longPress.minimumPressDuration = 0.8; //定義按的時間
[aBtn addGestureRecognizer:longPress];
-(void)btnLong:(UILongPressGestureRecognizer*)gestureRecognizer{
if ([gestureRecognizer state] == UIGestureRecognizerStateBegan) {
NSLog(@"長按事件");
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"訊息" message:@"確定刪除該模式嗎。" delegate:selfcancelButtonTitle:@"取消" otherButtonTitles:@"刪除", nil];
[alert show];
}
}