UIControlEventTouchDown
单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候。
UIControlEventTouchDownRepeat
多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候。
UIControlEventTouchDragInside
当一次触摸在控件窗口内拖动时。
UIControlEventTouchDragOutside
当一次触摸在控件窗口之外拖动时。
UIControlEventTouchDragEnter
当一次触摸从控件窗口之外拖动到内部时。
UIControlEventTouchDragExit
当一次触摸从控件窗口内部拖动到外部时。
UIControlEventTouchUpInside
所有在控件之内触摸抬起事件。
UIControlEventTouchUpOutside
所有在控件之外触摸抬起事件(点触必须开始与控件内部才会发送通知)。
UIControlEventTouchCancel
所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上锁或者电话呼叫打断。
UIControlEventTouchChanged
当控件的值发生改变时,发送通知。用于滑块、分段控件、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放下时发送,或者在被拖动时发送。
UIControlEventEditingDidBegin
当文本控件中开始编辑时发送通知。
UIControlEventEditingChanged
当文本控件中的文本被改变时发送通知。
UIControlEventEditingDidEnd
当文本控件中编辑结束时发送通知。
UIControlEventEditingDidOnExit
当文本控件内通过按下回车键(或等价行为)结束编辑时,发送通知。
UIControlEventAlltouchEvents
通知所有触摸事件。
UIControlEventAllEditingEvents
通知所有关于文本编辑的事件。
UIControlEventAllEvents
通知所有事件。
//
002 // ViewController.m
003 // UIControlEvents
004 //
005 // Created by WeiZhen_Liu on 13-4-27.
006 // Copyright (c) 2013年 WeiZhen_Liu. All rights reserved.
007 //
008
009 #import "ViewController.h"
010
011 @interface ViewController ()
012
013 @end
014
015 @implementation ViewController
016
017 - (void)viewDidLoad
018 {
019 [super viewDidLoad];
020 UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
021 [button setFrame:CGRectMake(10, 100, 300, 40)];
022 [button setTitle:@"Test" forState:UIControlStateNormal];
023 [button addTarget:self action:@selector(TouchDown:) forControlEvents:UIControlEventTouchDown];
024 [button addTarget:self action:@selector(TouchDownRepeat:) forControlEvents:UIControlEventTouchDownRepeat];
025 [button addTarget:self action:@selector(TouchDragInside:) forControlEvents:UIControlEventTouchDragInside];
026 [button addTarget:self action:@selector(TouchDragOutside:) forControlEvents:UIControlEventTouchDragOutside];
027 [button addTarget:self action:@selector(TouchDragEnter:) forControlEvents:UIControlEventTouchDragEnter];
028 [button addTarget:self action:@selector(TouchDragExit:) forControlEvents:UIControlEventTouchDragExit];
029 [button addTarget:self action:@selector(TouchUpInside:) forControlEvents:UIControlEventTouchUpInside];
030 [button addTarget:self action:@selector(TouchUpOutside:) forControlEvents:UIControlEventTouchUpOutside];
031 [button addTarget:self action:@selector(TouchCancel:) forControlEvents:UIControlEventTouchCancel];
032 UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(buttonLongPress:)];
033 longPress.minimumPressDuration = 3;
034 [button addGestureRecognizer:longPress];
035 [longPress release];
036 [self.view addSubview:button];
037 }
038
039 - (void)TouchDown:(id)sender
040 {
041 NSLog(@"%@", NSStringFromSelector(_cmd));
042 }
043
044
045 - (void)TouchDownRepeat:(id)sender
046 {
047 NSLog(@"%@", NSStringFromSelector(_cmd));
048 }
049
050 - (void)TouchDragInside:(id)sender
051 {
052 NSLog(@"%@", NSStringFromSelector(_cmd));
053 }
054
055 - (void)TouchDragOutside:(id)sender
056 {
057 NSLog(@"%@", NSStringFromSelector(_cmd));
058 }
059
060 - (void)TouchDragEnter:(id)sender
061 {
062 NSLog(@"%@", NSStringFromSelector(_cmd));
063 }
064
065 - (void)TouchDragExit:(id)sender
066 {
067 NSLog(@"%@", NSStringFromSelector(_cmd));
068 }
069
070 - (void)TouchUpInside:(id)sender
071 {
072 NSLog(@"%@", NSStringFromSelector(_cmd));
073 }
074
075 - (void)TouchUpOutside:(id)sender
076 {
077 NSLog(@"%@", NSStringFromSelector(_cmd));
078 }
079
080 - (void)TouchCancel:(id)sender
081 {
082 NSLog(@"%@", NSStringFromSelector(_cmd));
083 }
084
085 - (void)didReceiveMemoryWarning
086 {
087 [super didReceiveMemoryWarning];
088 // Dispose of any resources that can be recreated.
089 }
090
091 - (void)buttonLongPress:(UILongPressGestureRecognizer *)gestureRecognizer
092 {
093 if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {
094 NSLog(@"%@", NSStringFromSelector(_cmd));
095 }
096 }
097
098 @end
099
100 /**
101 * UIControlEventTouchDown = 1 << 0, // on all touch downs
102 * UIControlEventTouchDownRepeat = 1 << 1, // on multiple touchdowns (tap count > 1)
103 * UIControlEventTouchDragInside = 1 << 2,
104 * UIControlEventTouchDragOutside = 1 << 3,
105 * UIControlEventTouchDragEnter = 1 << 4, // 注:我在模拟器上找了好久没找到这个东西什么时候触法
106 * UIControlEventTouchDragExit = 1 << 5,
107 * UIControlEventTouchUpInside = 1 << 6,
108 * UIControlEventTouchUpOutside = 1 << 7,
109 * UIControlEventTouchCancel = 1 << 8,
110 * 按下松开,依次触发: TouchDown: TouchUpInside:
111 * 按下并在按钮内部拖动最后松开,依次触发: TouchDown: TouchDragInside:(多次) TouchUpInside:
112 * 按着按钮拖动到按钮外不远处,依次触发: TouchDown: TouchDragInside:(多次) TouchUpInside:
113 * 按着按钮拖动到按钮外很远处,依次触发: TouchDown: TouchDragInside:(多次) TouchDragExit: TouchDragOutside:(多次) TouchUpOutside:
114 * 快速双击两下,依次触发: TouchDown: TouchUpInside: TouchDown: TouchDownRepeat: TouchUpInside:
115 * 快速击三下,依次触发: TouchDown: TouchUpInside: TouchDown: TouchDownRepeat: TouchUpInside: TouchDown: TouchDownRepeat: TouchUpInside:
116 * 长按会依次触发: TouchDown: buttonLongPress: TouchCancel:
117 */
------------------------------------------------------------------------------------------------------------
摘自:
http://blog.163.com/cz_jdton/blog/static/92732504201282543017312/
网友评论