文档章节

关于UIScrollView不能响应UITouch事件的解决办法

Megan_zhou
 Megan_zhou
发布于 2013/07/11 15:25
字数 219
阅读 11201
收藏 4

这个不用多说直接上代码。

原因是:UIView的touch事件被UIScrollView捕获了。

解决办法:让UIScrollView将事件传递过去。于是最简单的解决办法就是加一个UIScrollView的category。这样每个用到UIScrollView的地方只要导入这个category就可以直接响应相关的touch事件了。

类似问题:在论坛看见很多人说UIImageView也没办法响应,我没尝试过,不过我想解决办法和原因都是一样的。 如果有人尝试过,不一样,欢迎批评指正。

#import "UIScrollView+UITouch.h"

@implementation UIScrollView (UITouch)

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
  [[self nextResponder] touchesBegan:touches withEvent:event];
  [super touchesBegan:touches withEvent:event];
}

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
  [[self nextResponder] touchesMoved:touches withEvent:event];
  [super touchesMoved:touches withEvent:event];
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
  [[self nextResponder] touchesEnded:touches withEvent:event];
  [super touchesEnded:touches withEvent:event];
}

@end

© 著作权归作者所有

共有 人打赏支持
Megan_zhou
粉丝 72
博文 116
码字总数 30181
作品 0
浦东
程序员
私信 提问
加载中

评论(1)

V
Vincent_涵
这种方法是能解决UIScrollView不能响应UITouch事件,但是会导致使用键盘手写输入法输入中文时崩溃,出现问题的朋友可以看我的简书里这篇文章,对这种方法稍作优化
http://www.jianshu.com/p/0e9cb4a8c3a0
UIScrollView中的UITableView接收不到点击事件

一个UIScrollView中有若干个UITextfield,为了能在空白处点击能隐藏键盘,加了UITapGestureRecognizer事件,结果导致同样在UIScrollView里的UITableView接收不到didSelectRowAtIndexPath调用...

yoyoso
2015/03/19
0
0
UIScrollView点击事件

为UIScrollView添加点击事件,从而实现scrollview上的点击背景退出编辑状态。 直接代码呈上: 一、先要支持协议 UIGestureRecognizerDelegate 二、为你需要添加点击事件的scrollview添加点击...

吕赟杰
2016/03/07
686
0
iOS-事件响应链的学习

前言 事件处理完整过程; 1,在手指触摸屏幕时,会产生一个事件,系统会把这个事件添加到UIApplication管理的事件队列中。 2,取出队列中最前面的事件,交给主窗口Window。 3,主窗口会逐级向...

麦兜卖鱼丸
2016/06/14
102
1
UITouch 触摸事件处理(实例)

UITouch 触摸事件处理(实例) 1. UITouch 的主要方法: - (void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event; - (void)touchesMoved:(NSSet )touches withEvent:(UIEvent )eve......

jackyyang
2012/07/13
0
0
iOS 全屏侧滑手势/UIScrollView/UISlider间滑动手势冲突

一、前期准备 有一个支持全屏侧滑返回的视图控制器ViewController,ViewController.view上有一个UIScrollView,UIScrollView上有UISlider。俺直接在之前的示例Demo上演示,简书地址:iOS 自定...

且行且珍惜_iOS
2018/08/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Nginx反向代理

Nginx反向代理 应用场景 A 机器运行的nginx提供的web服务,只有一个内网地址192.168.254.128(内网) B机器有两块网卡,一个地址是192.168.254.137(内网),另一个是192.168.79.128(外网)...

李超小牛子
今天
2
0
数据库事务隔离级别

当数据库上有多个事务同时执行的时候,可能出现下面问题: 脏读(dirty read):指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访...

Jacktanger
今天
1
0
4.61 - 第二个JAVA应用 4.62/63 - Tomcat的管理功能

4.61 - 第二个JAVA应用 方法一:配置文件: /usr/local/tomcat/conf/server.xml <Host name="www.aminglinux.cc" appBase="/data/wwwroot/www.aminglinux.cc" unpackWARs="tr......

Champin
今天
0
0
MariaDB密码重置

MariaDB密码重置 如果记得root的密码: mysqladmin -uroot -paminglinux password "aming-linux" //用此方式将原密码aminglinux重置为aming-linux 如果不记得原密码: # vi /etc/my.cnf......

wzb88
昨天
1
0
印度封禁抖音,称导致该国年轻人“文化堕落”!

本文经授权转载自顶级程序员 (ID:TopCoding) 作者 | 江户川雨 责编 | https://weavi.com/13775725 https://weavi.com/13775726 https://weavi.com/13775724 https://weavi.com/13775723 ......

陈刚生
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部