UITapGestureRecognizer 的用法

2016-09-01  本文已影响727人  纯阳子_

UITapGestureRecognizer 的用法

//单指单击

2:UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self

3:action:@selector(handleSingleFingerEvent:)];

4:singleFingerOne.numberOfTouchesRequired = 1;//手指数

5:singleFingerOne.numberOfTapsRequired = 1;//tap次数

6:singleFingerOne.delegate= self;

8://单指双击

9:UITapGestureRecognizer *singleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self

10:action:@selector(handleSingleFingerEvent:)];

11:singleFingerTwo.numberOfTouchesRequired = 1;

12:singleFingerTwo.numberOfTapsRequired = 2;

13:singleFingerTwo.delegate= self;

14:

15://双指单击

16:UITapGestureRecognizer *doubleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self

17:action:@selector(handleDoubleFingerEvent:)];

18:doubleFingerOne.numberOfTouchesRequired = 2;

19:doubleFingerOne.numberOfTapsRequired = 1;

20:doubleFingerOne.delegate= self;

21:

22:UITapGestureRecognizer *doubleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self

23:action:@selector(handleDoubleFingerEvent:)];

24:doubleFingerTwo.numberOfTouchesRequired = 2;

25:doubleFingerTwo.numberOfTapsRequired = 2;

26:doubleFingerTwo.delegate= self;

27:

28://如果不加下面的话,当单指双击时,会先调用单指单击中的处理,再调用单指双击中的处理

29:[singleFingerOne requireGestureRecognizerToFail:singleFingerTwo];

30://同理双指亦是如此

31:[doubleFingerOne requireGestureRecognizerToFail:doubleFingerTwo];

32:

33:[self.view addGestureRecognizer:singleFingerOne];

34:[self.view addGestureRecognizer:singleFingerTwo];

35:[self.view addGestureRecognizer:doubleFingerOne];

36:[self.view addGestureRecognizer:doubleFingerTwo];

37:

38:[singleFingerOne release];

39:[singleFingerTwo release];

40:[doubleFingerOne release];

41:[doubleFingerTwo release];

处理事件的方法,代码:

1://处理单指事件

2:- (void)handleSingleFingerEvent:(UITapGestureRecognizer *)sender

3:{

4:if(sender.numberOfTapsRequired == 1) {

5://单指单击

6:NSLog(@"单指单击");

7:}elseif(sender.numberOfTapsRequired == 2){

8://单指双击

9:NSLog(@"单指双击");

10:}

11:}

12://处理双指事件

13:- (void)handleDoubleFingerEvent:(UITapGestureRecognizer *)sender

14:{

15:if(sender.numberOfTapsRequired == 1) {

16://双指单击

17:NSLog(@"双指单击");

18:}elseif(sender.numberOfTapsRequired == 2){

19://双指双击

20:NSLog(@"双指双击");

21:}

22:}

将相应代码复制到你的工程中即可使用,由于代码中已经有详细的解释说明,这里就不在重复解释了。

代码中只是列举了单指与双指对于单击或多击的处理,同理多指的操作需修改numberOfTouchesRequired属性,对点击的次数需修改numberOfTapsRequired属性。

对于其他手势例如UISwipeGestureRecognizer,UILongPressGestureRecognizer,UILongPressGestureRecognizer的操作使用类似处理。

上一篇下一篇

猜你喜欢

热点阅读