UIScrollView无法响应touch事件解决方法

转载 2016年06月02日 10:20:46

UIScrollView不会响应touch事件,这样就无法在touchesEnd方法中做一些事情了,比如关闭键盘等等。可以写个category解决这个问题


#import "UIScrollView+TouchEvent.h"


@implementation UIScrollView (TouchEvent)


- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    [[selfnextResponder] touchesBegan:toucheswithEvent:event];

    [super touchesBegan:touches withEvent:event];

}

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {

    [[selfnextResponder] touchesMoved:toucheswithEvent:event];

    [super touchesMoved:touches withEvent:event];

}


- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

    [[selfnextResponder] touchesEnded:toucheswithEvent:event];

    [super touchesEnded:touches withEvent:event];

}


@end







UITableView是不会响应touchesBegan:withEvent:之类的UIResponder的方法的。因此,加在其上的所有视图的响应者链就断了。如果在UITableView其上加任何的自身不具备类似UIButton一样有目标动作机制的UIView及其子类控件的时候,这个控件也不会响应touchesBegan:withEvent:方法。即便是设置该控件的userInteractionEnabled为YES也没用。

如此一来,如果想要这些控件具有交互性能怎么办?有一种很直观的方法,给这个控件加上手势识别器。

- (void)addAGesutreRecognizerForYourView

{

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesturedDetected:)]; // 手势类型随你喜欢。

    tapGesture.delegate = self;

    [yourView addGestureRecognizer:panGesture];

}

- (void)tapGesturedDetected:(UITapGestureRecognizer *)recognizer

{

    // do something

}



『IOS』UIScrollView无法响应touch事件的解决办法

原文地址:http://blog.csdn.net/smking/article/details/8073747 下面这个方法使用的地方很多, 比如在一个UITextView中要加上...

ios UIScrollView响应touch事件

  • 2012年10月17日 15:14
  • 33KB
  • 下载

手势识别与事件库 Touch.js若干问题及解决方法

Touch.js是移动设备上的手势识别与事件库, 由百度云Clouda团队维护,也是在百度内部广泛使用的开发工具. Touch.js的代码已托管于github并开源,希望能帮助国内更多的开发者学习和...
  • gzz168
  • gzz168
  • 2016年07月09日 10:25
  • 1451

移动端touch事件影响click事件的相关解决方法

原文地址: http://xhkhw.blog.163.com/blog/static/2132492492014610103838363/ 在移动端选取元素推荐使用:doc...
  • xjdAlan
  • xjdAlan
  • 2014年11月24日 14:02
  • 5663

移动端touch事件影响click事件的相关解决方法

http://blog.csdn.net/feniuben/article/details/21159271 主题 JavaScript  上周做了一个项目,发现一个DOM元素触发...
  • kepoon
  • kepoon
  • 2017年03月29日 11:42
  • 3450

移动端触发touch事件同时触发click事件的相关解决方法

上周做了一个项目,发现一个DOM元素触发touch事件,竟然还会触发别的元素的click事件。 我先描述一下,当时遇到的问题。项目初始状态是下面这张图: 我给右上方的的搜索按钮,绑定了一个touc...

button移动(或执行动画)之后无法响应点击事件的解决方法

其实问题的本质原因是button在移动之后一直处于按下的状态.导致无法触发方法.我们要做的就是在移动后取消button的按下状态.以下为MyButton的.m文件.我的自定义button模仿了苹果的虚...

cocos2d-x 3.x 关于cocostudio的UI将事件吃掉,场景Layer无法响应手势的问题解决方法

在使用了UI编辑器 http://www.cocoachina.com/bbs/read.php?tid=197606
  • sonikk
  • sonikk
  • 2014年08月02日 20:21
  • 3776

细说UIScrollView上的Touch 事件

1 开篇 最近在项目中遇到一个 需求就是在一个可以左右拨动的页面上,添加一些交互功能,比如说点击某个页面会有文字变化,图片变换,最后有比较特殊的需求是做个像slider功能的可以拖动的按钮,...

UIScrollView上的控件处理touch事件

http://blog.csdn.net/ztp800201/article/details/7973036 http://blog.sina.com.cn/s/blog_7daf0a5f0100t...
  • jeffasd
  • jeffasd
  • 2016年03月26日 09:36
  • 702
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UIScrollView无法响应touch事件解决方法
举报原因:
原因补充:

(最多只允许输入30个字)