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

带UIScrollview的UITapgesture没有停止滚动吗?

带UIScrollview的UITapgesture没有停止滚动是因为UITapgesture默认会阻止UIScrollView的滚动事件。当我们在UIScrollView上添加了UITapgesture手势后,手势会拦截触摸事件,导致UIScrollView无法响应滚动操作。

为了解决这个问题,我们可以通过设置UITapgesture的cancelsTouchesInView属性为NO来允许UIScrollView接收触摸事件。具体代码如下:

代码语言:swift
复制
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTapGesture))
tapGesture.cancelsTouchesInView = false
scrollView.addGestureRecognizer(tapGesture)

这样设置之后,UITapgesture手势将不会拦截触摸事件,UIScrollView可以正常响应滚动操作。

推荐的腾讯云相关产品:腾讯云移动应用分析(MTA),它是一款专注于移动应用数据分析的产品,可以帮助开发者深入了解用户行为、应用性能等数据,提供数据分析和可视化报表等功能。了解更多信息,请访问腾讯云移动应用分析产品介绍页面:腾讯云移动应用分析

注意:本答案仅供参考,具体产品选择应根据实际需求进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS-UIScrollerView

UIScrollerView常见属性 CGPoint contentOffset 这个属性用来表示UIScrollerView滚动位置(其实就是内容左上角与ScrollerView左上角间距值...四周增加额外滚动区域,一般用来避免scrollerView内容被其他控件挡住 UIScrollerView无法滚动原因 没有设置contentSize scrollEnabled = NO 没有收到触摸事件...{ NSLog(@"减速完毕,停止滑动"); } ScrollerView缩放代理回调 必须设置scrollerView缩放比例 scrollerView.maximumZoomScale...*)scrollView{ return [UIView new]; } ScrollerView缩放代理回调 //滚动视图在和方法实现结束时调用此方法,但仅在请求动画时调用setContentOffset...)scrollViewDidScrollToTop:(UIScrollView *)scrollView{ NSLog(@"滚动视图在完成滚动到内容顶部时发送此消息"); } UIScrollerView

17510

UIScrollView

前面两篇文章聊UITableView和UICollectionView都是继承自UIScrollView,本篇文章就来简单聊聊UIScrollView。 ?...contentOffset是scrollView实际滚动区域左上角与视图可视区域左上角距离。 pagingEnabled是是否以一页大小整体进行滚动,也就是用来实现翻页效果。...UIScrollView一些常用代理方法如下: #pragma mark - UIScrollViewDelegate //监听页面滚动,根据scrollView.contentOffset来做业务逻辑...中断一些业务逻辑,比如视频、gif播放(在列表拖动时候停止播放gif和视频) - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView...用于页面滚动停止时候开启一个逻辑,比如视频自动播放(页面停止滚动后,开启视图滚动前暂停gif或者视图播放) - (void)scrollViewDidEndDecelerating:(UIScrollView

89920
  • iOS滚动视图UIScrollView使用方法

    //设置滚动条指示器类型,默认是白边界上黑色滚动条 self.scrollView.indicatorStyle = UIScrollViewIndicatorStyleDefault;...//开始进行拖动时调用 - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ } //抬起手指停止拖动时调用...)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{ } //减速完毕停止滚动时调用,这里读取contentOffset...属性就是最终停止位置 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ } 这里在view中添加了一个设置了大小...,但是是滚动下来才能看得见: 基本方法代码中注释已经讲很清楚了,如果有不太清楚可以自己试着调一下,也可以一起讨论讨论~ 可以在github上下载我工程:https://github.com/Cloudox

    1.5K20

    两个imageView实现图片轮播

    ,如果是往右滚动,那么下一张图片位置应该在左边。...} - (void)pauseScroll { // 等于1表示没有滚动 if (self.scrollView.contentOffset.x / self.width...自动滚动 轮播功能实现了,接下来就是添加定时器让它自动滚动了。...*)scrollView { [self pauseScroll]; } 拖拽时停止定时器 当我们手动拖拽时候,需要停止自动滚动,此时我们只需要关闭定时器就行了,当我们拖拽结束时候...思路) 下载图片,先从缓存中取,如果有,则替换之前占位图片,如果没有,去沙盒中取,如果有,替换占位图片,并添加到缓存中,如果没有,开启异步线程下载 监听图片点击 在实际开发中,通常轮播图都有点击图片跳转到对应内容操作

    1.1K30

    【IOS开发基础系列】UIScrollView专题

    ScrollView本身不能绘制,除非显示水平和竖直指示器。滚动视图必须知道内容视图大小,以便于知道什么时候停止;一般而言,当滚动出内容边界时,它就返回了。         ...因为滚动视图没有滚动条,它必须知道一个触摸信号是打算滚动还是打算跟踪里面的子视图。...假如定时器行动时,没有任何位置改变,滚动视图就发送一个跟踪事件给触摸子视图。如果在定时器消失前,用户拖动他们手指足够远,滚动视图取消子视图任何跟踪事件,滚动它自己。...contentSize     里面内容大小,也就是可以滚动大小,默认是0,没有滚动效果。...假如是 NO,那么滚动到达边界会立刻停止

    58030

    iOS开发UIScrollView使用详解 原

    iOS开发UIScrollView使用详解 一、ScrollView常用方法和属性 @property(nonatomic)CGPoint contentOffset; 设置滚动偏移量 @property...,默认为NO,当设置为YES时,你滚动视图只能同一时间在一个方向上滚动,但是当你从对角线拖动时,是时刻在水平和竖直方向同时滚动。...dragging; 获取用户是否开始拖动视图 @property(nonatomic,readonly,getter=isDecelerating) BOOL decelerating; 获取视图是否开始减速(用户停止拖动但视图仍在滚动...scale; 视图内容结束缩放时触发方法 - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;  返回yes,开启快捷滚动回顶端...,将要滚动时调用 - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView; 视图快捷滚动回顶端开始动作时调用 疏漏之处 欢迎指正 专注技术

    1.6K30

    两个imageView实现图片轮播

    ,如果是往右滚动,那么下一张图片位置应该在左边。...} - (void)pauseScroll { // 等于1表示没有滚动 if (self.scrollView.contentOffset.x / self.width...自动滚动 轮播功能实现了,接下来就是添加定时器让它自动滚动了。...*)scrollView { [self pauseScroll]; } 拖拽时停止定时器 当我们手动拖拽时候,需要停止自动滚动,此时我们只需要关闭定时器就行了,当我们拖拽结束时候...思路) 下载图片,先从缓存中取,如果有,则替换之前占位图片,如果没有,去沙盒中取,如果有,替换占位图片,并添加到缓存中,如果没有,开启异步线程下载 监听图片点击 在实际开发中,通常轮播图都有点击图片跳转到对应内容操作

    1.1K50

    如何判断 ScrollView、List 是否正在滚动

    比如在 SwipeCell[3] 中,需要在可滚动组件开始滚动时,自动关闭已经打开侧滑菜单。遗憾是,SwiftUI 并没有提供这方面的 API 。...Delegate 方式获知当前滚动状态,主要依靠以下三个方法:scrollViewDidScroll(_ scrollView: UIScrollView)开始滚动时调用此方法scrollViewDidEndDecelerating...(_ scrollView: UIScrollView)手指滑动可滚动区域后( 此时手指已经离开 ),滚动逐渐减速,在滚动停止时会调用此方法scrollViewDidEndDragging(_ scrollView...判断准确度没有前两种方式高当可滚动组件中内容出现了非滚动引起尺寸或位置变化( 例如 List 中某个视图尺寸发生了动态变化 ),本方式会误判断为发生了滚动,但在视图变化结束后,状态会马上恢复到滚动结束滚动开始后...( 状态已变化为滚动中 ),保持手指处于按压状态并停止滑动,此方式会将此时视为滚动结束,而前两种方式仍会保持滚动状态直到手指结束按压IsScrolling我将后两种解决方案打包做成了一个库 —— IsScrolling

    3.8K40

    TableView优化之快速滑动下忽略加载

    =对于UIImage处理建议先借助CoreGraphic处理图片吧,直接绘制一个圆角图片给ImageView吧。对于Label没有太好优化方案,是在不行只能CoreText了。...:(inout CGPoint *)targetContentOffset{ //取出滚动停止时展示第一个cellindexPath NSIndexPath *ip = [self indexPathForRowAtPoint...] firstObject]; NSInteger skipCount = 8; //如果两者之间差距很大则认为滑动速度很快,中间用户都不关心,直接把滚动停止展示cell加入到needLoadArr...但是可以看到作者并没有在这选择添加顶部可能要展示cell进needLoadArr数组,那么当他滚动到顶部时候我们要将顶部cell进行直接更新,所以通过- scrollViewDidEndScrollingAnimation...要知道没有什么代理是直接反应滚动速度,这里作者很取巧用到了-scrollViewWillEndDragging:withVelocity:targetContentOffset:这个代理。

    1.7K33

    深入理解RunLoop及在开发中应用

    二.线程与RunLoop关系 1.每条线程都有唯一一个与之对应RunLoop对象,没有线程,也就没有RunLoop存在必要。...解决NSTimer在UIScrollView滑动时停止工作问题 默认情况下,在滚动 tableView、UIScrollView 时候,NSTimer会停止工作,这是因为在滚动时,RunLoop...会进入另一个Mode 模式UITrackingRunLoopMode 下,在该模式下,定时器就会停止,当不在滚动 UITextView , 定时器会重新开始。...例如:UIScrollView+ NSTimer演示滚动时,定时器停止工作 - (void)viewDidLoad { [super viewDidLoad]; UIScrollView...(应用最常见应该为轮播图自动播放时) 边滚动,定时器边工作,我们就可以用NSRunLoop默认模式: static int count = 0; NSTimer *timer =

    1.3K20

    UIScrollView一步步实现1 简介1.1 工作原理1.2 UIScrollView常见几个重要控件1.3 UIScrollView常见重要属性1.4 手工代码实现拖动2 三个重要属性

    1 简介 UIScrollView 是负责滚动视图。苹果最强大地方就在于其良好UI展示,和UE体验。如果不会很好使用UIScrollView,就等于丧失了苹果一般法力。...UIScrollView是一个能够滚动视图控件,可以用来展示大量内容,并且可以通过滚动查看所有的内容 1.1 工作原理 在缩放时候,原理是操作被缩放控件transform数值。...缩放结束后 scrollView 本身 frame 并没有发生变化 缩放结束后 imageView 本身 bounds 也没有发生变化 缩放结束后 imageView center 发生了变化...设置UIScrollView滚动范围 contentOffset UIScrollView当前滚动位置 contentInset 增加滚动视图四周增加滚动范围 bounces 是否有弹簧效果,默认是开启...indicatorStyle 设定滚动样式 dragging 是否正在被拖拽 tracking 按住手指还没有开始拖动时候值是YES,否则NO decelerating 是否正在减速 zooming

    1.6K60

    UIScrollerView当前显示3张图

    总效果.gif ①、首先像往常一样写一个基本UIScrollerView,会得到下图: _scrollerView = [[UIScrollView alloc] init]; _scrollerView.frame...Bug.gif 解决上述Bug方案就是利用UIScrollView两个代理方法;在前后循环过渡处,刚开始拖拽时就在Bug位置画上对应视图;即《 3 + 4 + 0 - 1 - 2 - 3 - 4...+ 0 + 1》,结束拖拽之后,再改变UIScrollViewcontentOffset,不带动画; //开始拖拽时执行 - (void)scrollViewWillBeginDragging:(UIScrollView...- 4 + 0 + 1 NSInteger index = scrollView.contentOffset.x/_currentPageSize.width; //是为了解决循环滚动连贯性问题...if (_isTimer) { [self statrScroll:_second]; } //是为了解决循环滚动连贯性问题 if (index == 0

    89470

    UITableView性能优化-中级篇

    进阶篇 最近遇到一个需求,对tableView有中级优化需求 要求 tableView 滚动时候,滚动到哪行,哪行图片才加载并显示,滚动过程中图片不加载显示; 页面跳转时候,取消当前页面的图片加载请求...,value = 下载image图片 读取时候判断YYCache中是否有该url,有的话,直接读取缓存图片数据,没有的话,走图片下载逻辑,并缓存图片 问题所在: 如上设置,如果我们cell...下任务会暂停 停止滚动时候 - 进入`defaultMode` - 继续执行`trackingMode`下任务 - 例如这里loadImage */...滚动时候,进入trackingMode,导致defaultMode下任务会被暂停,停止滚动时候 ==> 进入defaultMode - 继续执行defaultMode下任务 - 例如这里defaultMode...Demo源码 ---- 参考资料 iOS 保持界面流畅技巧 VVeboTableViewDemo YYKitDemo UIScrollView 实践经验

    1.6K20

    仿淘宝类电商秒杀分页控件(附源码)

    前言 最近公司一个电商应用要实现一个类似淘宝淘抢购页面逻辑功能,起初本来想找个第三方组件,后面发现网上并没有类似的实现。所以后面决定自己封装一个,效果如下所示: ? 2....▐ 4.2 自定义菜单样式 可以看到上面没有一行设置菜单样式代码,那是因为不设置菜单使用是默认样式,除此之外,菜单样式还是可以自定义, GFPageController为大家提供了下面14个参数来控制菜单样式显示...淘抢购页面.png 可以发现,只要滚动到了中间红色那块区域文字,颜色都会变成白色。。。 脑洞了很久也没有想到思路!后来网上查找,从一篇文章中得到了灵感 视错觉结合UI。...(值域 0~1 值越小减速停止时间越短),默认为1 _collectionViewTop.delegate = self;...; #pragma makr - 同步滚动 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { UICollectionView *

    1.3K20

    Swift 自定义布局实现 Cover Flow 效果

    滚动是分页滚动,而且每次停止位置都是与UICollectionView 中心点重合 需求已经明确了,那我们该如何去实现呢!...第三步,实现 Cell 滚动是分页阻尼效果,并且滑动停止时候当前放大 Cell 居中显示,有的同学会说:UICollectionView 自带了分页效果,只需要设置 isPagingEnabled...UICollectionView 停止滚动时,返回一个新偏移点坐标,它有俩个参数,第一个参数 proposedContentOffset 指的是滚动将要停止偏移点坐标,第二个参数 velocity...指的是滚动速度;那既然我们能获取到当前滚动即将停止坐标,那我们就可以修改它,使它偏移点坐标能让 Cell 居中显示,在这里就不做更多阐述了,直接浏览下方代码吧!...: 将要停止点 /// - velocity: 滚动速度 /// - Returns: 滚动停止点 override func targetContentOffset(forProposedContentOffset

    1.7K20

    iOS开发之UIScrollView在Autolayout下使用

    因为设置UIScrollView布局约束是没有UIScrollViewsize(即contentSize)是根据其中subviews所占据size来计算。...当然,如果contentSize内容不足以布满整个UIScrollView时,滚动条将不会出现,UIScrollView也不会滚动。...原则2:subviewssize不能依赖于UIScrollView 因为UIScrollViewsize依赖于subviews,而如果subviewssize再依赖于UIScrollView,就类似于操作系统中死锁了...明明设置了宽和高了呀,如果不做这一步,UIScrollView还是不能滚动,因为这4个Pin约束实际上是用于告诉UIScrollView:我会把你内容“撑到”多大。...注意,这些约束都只是和contentView相关,没有UIScrollView相关。

    97270

    小程序iOS客户端框架——控件事件逻辑框架与控件原生化(下)

    接口(可选),绘制时通过调用客户端drawCanvas接口,将绘制命令传递给客户端,客户端解析drawCanvas接口所参数,获取绘制命令集,并使用了Quarz2D来进行图形绘制。...div滚动滚动而移动,并且超出div区域内容应该被裁掉,但是由于原生控件是直接插入到webview下,与div之间没有关联,所以不会跟随移动也不会被裁减,在表现上会出现与开发者预期不一致情况,影响用户体验...WKWebView解析HTML在客户端生成对应原生控件示例) 如上图所示,WKWebView将在解析HTML时将该标签位置生成一个对应UIScrollView控件。...,并通过“组件API”insertContainer通知客户端该滚动位置、大小; b、客户端根据insertContainer传入位置和大小,在WKWebView下遍历找到这个DIV标签对应UIScrollView...(大小位置均一致),保存其对象指针,并分配一个id返回给WEB端; c、当WEB端插入原生控件时,通过接口传入id通知客户端:该原生控件属于哪个div滚动条,客户端找到该滚动条对应原生UIScrollView

    2.9K40
    领券