ios UIScrollView响应点击事件

前言:还是那个图片浏览的demo,利用UIScrollView实现图片的分页显示,现在希望点击每一张图片,都可以跳转到另一个专门对图片进行放大缩小的controller.

面临的问题是:UIScrollView作为一个如此常用的控件,查看UIScrollViewDelegate,只有滑动响应,竟然没有响应点击事件的方法!那么,就只有自己写点击事件了。

事件的具体操作好写,关键是如何把点击事件传进来?有两种方法:一、用现成的协议 二、自己新定义一个协议。

这里,我们介绍第一种方法,

协议@protocol UIGestureRecognizerDelegate <NSObject>    类UITapGestureRecognizer
 
具体实现如下:
//对srcollView添加点击响应
UITapGestureRecognizer *sigleTapRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTapGesture:)];
sigleTapRecognizer.numberOfTapsRequired = 1;
 [_srcollView addGestureRecognizer:sigleTapRecognizer];

点击后的响应:

-(void)handleTapGesture:( UITapGestureRecognizer *)tapRecognizer
{
    int tapCount = tapRecognizer.numberOfTapsRequired;
    // 先取消任何操作???????这句话存在的意义???
    [NSObject cancelPreviousPerformRequestsWithTarget:self];
    switch (tapCount){
        case 1:
            [self performSelector:@selector(handleSingleTap) withObject:nil afterDelay:0.22];
            break;
//        case 2:
//           [self handleDoubleTap:tapRecognizer];
             break;
    }
}
  

针对不同点击(单击、双击)的具体操作:这个自己根据自己的情况来写。

关于不使用UIGestureRecognizerDelegate,完全由自己写,可参考http://www.cnblogs.com/neozhu/archive/2012/03/30/2425224.html,但是我没有验证过,不知道可不可行。

如果要直接判断收拾方向之类的,比如向左或向右轻扫,可以使用UISwipeGestureRecognizer类。可参考http://o0o0o0o.iteye.com/blog/875333

posted @ 2013-07-11 10:36  little_star  阅读(5026)  评论(0编辑  收藏  举报