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

}



UIScrollView UICollectionView 无法响应touch事件

创建一个   UIScrollView+UITouch.h    category文件。 重写一下touch的所有需要的方法。 - (void)touchesBegan:(NSSet *)touc...
  • github_28919265
  • github_28919265
  • 2016年05月27日 12:12
  • 407

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

原文地址:http://blog.csdn.net/smking/article/details/8073747 下面这个方法使用的地方很多, 比如在一个UITextView中要加上...
  • fallenink
  • fallenink
  • 2014年11月17日 16:50
  • 1443

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
  • 847

IOS中UIScrollView阻断UITouch事件传递

UIScrollView覆盖在底层的UIView上面会接收UITouch的事件,事件就不会向下传递了,这时需要添加一个类别来让UISrollView不接收这个事件并把这个事件传递下去,添加如下类别即可...
  • ycz19930423
  • ycz19930423
  • 2016年04月06日 20:29
  • 1286

对于CCLayer中对touch事件不响应的问题解析

记住要重载的函数是: virtual void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent){}  virtual void ccTouches...
  • tanjinjun2011
  • tanjinjun2011
  • 2013年10月21日 19:21
  • 555

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

下面这个方法使用的地方很多, 比如在一个UITextView中要加上点击方法,如在这个UITextView的左边和右边点击的事件分别为向上和向下翻页,估计就可以使用下面这个方法。不过尚进行进行验证。 ...
  • wangzhen3416
  • wangzhen3416
  • 2016年08月11日 11:47
  • 136

UIScrollView不能响应UITouch事件

关于UIScrollView不能响应UITouch事件的解决办法 原因是:UIView的touch事件被UIScrollView捕获了。  解决办法:让UIScrollView将事件传递过...
  • s3590024
  • s3590024
  • 2016年05月13日 10:13
  • 258

[IOS]UIScrollView响应UITouch事件

[IOS]UIScrollView响应UITouch事件的解决办法
  • u012881779
  • u012881779
  • 2014年04月29日 17:22
  • 1362

ListView无法响应OnTouch事件

main.xml
  • shimly2010
  • shimly2010
  • 2011年10月21日 15:21
  • 4721

TextView无法响应onTouch事件

刚才给要给TextView设置拖动效果,用了setOnTouchListener为其添加了onTouch事件来处理拖动效果。但是测试总是失败。 后来找到问题,需要在TextView的属性中使能哦那Cl...
  • niuls
  • niuls
  • 2013年07月17日 11:24
  • 1043
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UIScrollView无法响应touch事件解决方法
举报原因:
原因补充:

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