前言:仍是那个图片浏览的demo,利用UIScrollView实现图片的分页显示,如今但愿点击每一张图片,均可以跳转到另外一个专门对图片进行放大缩小的controller.html
面临的问题是:UIScrollView做为一个如此经常使用的控件,查看UIScrollViewDelegate,只有滑动响应,居然没有响应点击事件的方法!那么,就只有本身写点击事件了。ui
事件的具体操做好写,关键是如何把点击事件传进来?有两种方法:1、用现成的协议 2、本身新定义一个协议。spa
这里,咱们介绍第一种方法, code
//对srcollView添加点击响应 UITapGestureRecognizer *sigleTapRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTapGesture:)]; sigleTapRecognizer.numberOfTapsRequired = 1; [_srcollView addGestureRecognizer:sigleTapRecognizer];
点击后的响应:orm
-(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; } }
针对不一样点击(单击、双击)的具体操做:这个本身根据本身的状况来写。htm
关于不使用UIGestureRecognizerDelegate,彻底由本身写,可参考http://www.cnblogs.com/neozhu/archive/2012/03/30/2425224.html,可是我没有验证过,不知道可不可行。blog
若是要直接判断收拾方向之类的,好比向左或向右轻扫,可使用UISwipeGestureRecognizer类。可参考http://o0o0o0o.iteye.com/blog/875333。事件