首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

touchesBegan在UIScrollView Swift 5中不起作用

touchesBegan是iOS开发中的一个方法,用于处理触摸事件的开始阶段。在UIScrollView中,touchesBegan方法通常用于处理滚动视图的触摸事件,例如检测用户开始触摸滚动视图时的操作。

在Swift 5中,touchesBegan方法在UIScrollView中可能不起作用的原因有以下几种可能性:

  1. UIScrollView的isUserInteractionEnabled属性被设置为false:如果UIScrollView的isUserInteractionEnabled属性被设置为false,那么它将无法接收触摸事件,包括touchesBegan方法。确保该属性被设置为true,以确保UIScrollView能够接收触摸事件。
  2. UIScrollView的delaysContentTouches属性被设置为true:如果UIScrollView的delaysContentTouches属性被设置为true,那么UIScrollView会延迟触发touchesBegan方法,直到确定用户不是在进行滚动操作。这可能导致touchesBegan方法不立即起作用。可以尝试将delaysContentTouches属性设置为false,以确保touchesBegan方法能够立即响应触摸事件。
  3. UIScrollView的子视图拦截了触摸事件:如果UIScrollView的子视图拦截了触摸事件,那么touchesBegan方法可能不会被调用。可以检查UIScrollView的子视图层级,确保没有其他视图拦截了触摸事件。

综上所述,如果在UIScrollView中的touchesBegan方法不起作用,可以检查UIScrollView的isUserInteractionEnabled属性、delaysContentTouches属性以及子视图是否拦截了触摸事件。确保这些设置正确,并且没有其他因素影响了touchesBegan方法的调用。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动开发平台:https://cloud.tencent.com/product/mpp
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云音视频处理(VOD):https://cloud.tencent.com/product/vod
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网平台(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙(Metaverse):https://cloud.tencent.com/product/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • iOS 中的事件响应

    响应链-方法调用 ParentView是TapTestView的父 View,TapTestView没有重写touchesBegan 方法,ParentView的touchesBegan 方法中打上断点...比如 beginTracking 是 touchesBegan 方法内部调用的。 通过下述方法参数,我们可以注意到:UIControl 处理的不是 touch 数组而是单个 touch。...当用户 UIScrollView 的一个子视图上按下时,UIScrollView并不知道用户是想要滑动内容视图还是点击对应子视图,所以在按下的一瞬间, 事件 UIEvent 从 UIApplication...open var canCancelContentTouches: Bool // UIScrollView的子类中重写该方法,用于返回是否将事件传递给对应的子视图,默认返回YES,如果返回NO,该事件不会传递给对应的子视图..., in view: UIView) -> Bool // UIScrollView的子类中重写该方法,用于返回是否取消已经传递给子视图的事件,默认当子视图是UIControl时返回NO,否则返回YES

    2.7K11

    iOS 面向协议方式封装空白页功能

    Swift除了可以面向对象编程,它还可以面向协议编程。那可不可以也用协议来解决情况呢?...嘿嘿,这个可以有,那我们接下来就来试试怎么通过协议的方式来避免上述情况,并且实现一行代码添加空白页功能 前言 如果对面向协议有疑问的同学可以看下我之前的两篇文章 iOS - Swift 面向协议编程...(一) iOS - Swift 面向协议编程(二) 之前的文章中提到了,协议除了起规范作用,还有别一个用处,就是赋予能力。...我们现在的目的就是让目标控制器或者目标视图遵守我们的协议后,就可以有实现空白页的功能。...,非常地恰巧,我们定义的方法lxf_EmptyDataSet需要外界将UIScrollView传递进来,DZNEmptyDataSet的数据源方法和代理方法也有scrollView。

    1.4K50

    iOS性能优化之启动优化

    方法出现死递归 touchesBegan方法中设置断点,运行项目,查看汇编代码 方法中被插入三次__sanitizer_cov_trace_pc_guard函数的调用 这就是循环引发的大坑,SanitizerCoverage...回调函数中存入队列的还是touchesBegan的函数地址,这会导致队列中永远存在一个到两个touchesBegan,next永远获取不完 解决办法: Build Setting→Other C Flags...→Write Link Map File,设置为YES\ 编译项目,打开LinkMap文件\ 配置生效,二进制重排成功\ 5.6.5 swift的函数符号 Other C Flags中的配置,仅对...而Swift使用swiftc编译器,要想获得swift函数符号,需要对Other Swift Flags进行配置\ 和Clang的配置参数略有出入\ 添加-sanitize-coverage=func...混编,成功得到Swift函数符号

    1.8K11

    MyLayout&TangramKit 的重大升级!

    MyLayout和TangramKit是一套基于frame之上的UI界面布局库的OC版本和Swift版本。目前最新版本升级为MyLayout1.7.0和TangramKit1.4.0。 ?...Swift1.4.0: https://github.com/youngsoft/TangramKit 这次升级的主要目的是为了和AutoLayout结合的更加紧密。...2.UIScrollView的滚动 对于UIScrollView来说需要设置contentSize来实现滚动的能力。...设置约束依赖时将容器视图的上下左右分别依赖UIScrollView视图的上下左右边界,如果需要上下滚动则将容器视图中的最底部子视图的底部边界依赖容器视图的底部边界。...然后UITableViewCell的派生类的视图代码布局处或者-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath

    2.1K20

    iOS开源界面布局库终于破3000star

    经过几年的打磨和多次的重构,我的iOS开源界面布局库MyLayout的star数量终于2018年8月6号破3000了!有图为证: ? MyLayout 还有Swift版本TangramKit: ?...大家可以到这里去下载: OC版本MyLayout: https://github.com/youngsoft/MyLinearLayout Swift版本TangramKit: https://github.com...//当调整自己大小时是伸缩顶部还是底部三个位置,默认是底部 @property(nonatomic,assign) LineViewFlexDir flexDir; //如果线性布局的父视图是UIScrollView...默认是NO.如果设置为YES的话则边缘视图的边距不起作用了,而且子视图的weight也不起作用了。而且不是调整自己的大小了 //也就是当垂直方向则所有子视图按顺序排列中间。...swift版本的TangramKit中得到了有效的解决。

    1.9K40
    领券