UIView中添加子视图UISCrollview后UITouch事件不响应

在实现跑马灯组件时,将UIScrollView作为UIView的子视图导致UITouch事件无响应。问题源于UIScrollView的手势拦截。为解决此问题,可以通过创建UIScrollView的category,重写其触摸方法,确保事件能从UIScrollView传递到UIView及其后的响应者链条。
摘要由CSDN通过智能技术生成

做跑马灯组件时,需要在UIView视图中添加子视图UIScrollview,以便可以进行多个内容的向上滚动显示,同时也在UIView中添加了UITouch事件,但是UITouch点击却没有响应。

怎么解决呢?

出现问题原因:UIScrollView自身就有手势响应的事件,从响应链原理来看,触发响应后,手势事件被UISCrollView拦截了,不会再往下传递给UIScrollView的父视图,即UIView,所以不会响应UIView中的UITouch事件。

解决方案:

创建一个UIScrollView的category,重写UITouch方法。

如:UIScrollView+UITouch.h、UIScrollView+UITouch.m,并在UIScrollView+UITouch.m文件中重写UITouch方法

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

- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
//    [[self nextResponder] touchesCancelled:touches withEvent:event];
    [super touchesCancelled:touches withEvent:event];
}

- (v
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值