UIScrollView 的无限滚动主要应用在图片轮播器、欢迎界面等场景。首先需要说明的是,文本所讲的是一种"笨办法",但是好理解且容易实现,在图片不多的时候用它也无妨。...它的原理是在要显示的图片前后各加一张图片即在第一张图片之前放最后一张图片,在最后一张图片之后放第一张图片,然后在滚动到边缘的时候,巧妙的过渡一下就可以"瞒天过海","以假乱真"的造成无限滚动的假象。...2、代码实现,主要分为:添加UIScrollView,添加显示图片,添加UIPageControl,然后监听UIScrollView的滚动,根据滚动的位置来设置UIPageControl,最重要的是对于滚动到两个边缘时要特殊处理一下...的代理方法,在该方法中改变UIPageControl并且处理边缘滚动 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {...//获取当前UIScrollView的位置 CGPoint offset = [scrollView contentOffset]; //算出滚动到第几页 int currentPage
为什么写这个 ---- 上面这个问题的答案也是我写这篇文章的初衷,在最近给游戏添加一些列表的时候,对比着应用了一下他们两个,在它们两个之间的优劣势之间进行取舍,就有了这个问题的答案。 ...按照我一个iOS开发而言,他们俩之间交集就是 UITableView是UIScrollView 的子类,也就是说UITableView是在UIScrollView的基础上写的,在平时的应用中 UITableView...或者是UICollectionView应用肯定比UIScrollView要多,要强大! ...所以,由于UITableView的性能低,在写一些列表的时候不得以使用UIScrollView + View 的方式,直接看可能觉得比较愚蠢,但事实是在使用中滑动的流畅度要比UITableView好,很尴尬...你怎么用的 ---- 那同样是这个界面我们要使用UIScrollView该怎么实现呢?
某条.gif 正文 1、核心思路 根据要求来分析,可以采用UIScrollView作为容器,开启pageEnable属性实现左右分页,同时关闭UIScrollView的上下滑动手势(避免和UITableview...容器和内部UITableView滑动手势冲突 如果UIScrollView容器的上下滑动手势打开,会存在两个上下滑手势,一般的操作不会触发UIScrollView容器的上下滑动(因为上下滑动优先被内部的...如果在页面左右滑动的同时,再进行上下滑动,就会触发UIScrollView的上下滑动,造成异常现象(UITableView上下滑动不再生效)。...contentSize = CGSizeMake(self.view.width * 4, 0); // 写0,关闭vertical的滚动 viewWithTag 具有传递性 代码中存在5个UIScrollView...但是,并不能满足解决问题,还是想找到的根本原因。经过一番思考,觉得问题可能出现在rootTabBarController上。
我曾经遇到过这样的问题,但需求是即使滑动scrollView,NSTimer也不能失效,于是就好好地研究了下这个问题。最终发现是NSTimer选择的一个模式的问题。
*)scrollView{ } //确定是否可以滚动到顶部 - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView...{ return YES; } //滚动到顶部时调用 - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView...{ } //已经滚动时调用 - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ }...,布尔值确定滚动到最后位置时是否需要减速 - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL...)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{ } //减速完毕停止滚动时调用,这里的读取contentOffset
问题描述 我们首页有点复杂,因为结构是下面是一个横向滚动的 UIScrollView 上面是一个 UITableView 但是整体看起来是连贯的 所以上面的 UITableView 的高度就要算出来。...但是线上的包在iOS11上面显示十分的正常,并且团队其他的小伙伴运行没出现问题,就我的 Xcode9运行出现问题。 那就是 Xcode9打包出来的出现了问题。...设置这两个属性之后,首页上面 UITableView 的数据果然出现了。 虽然解决了,但是首页因为多个 UIScrollView 导致十分滚动会卡顿。...这个最好的解决办法是抛弃左右滚动切换功能 这样最下面的 UICollectionView 就可以不用 直接整体一个 UITableView 这样就可以实现滚动顺畅。
https://blog.csdn.net/u010105969/article/details/79912517 背景: 公司项目中有一个需求:在首页上添加一个纵向滚动的文字轮播广告。...轮播效果图 实现过程: 上网搜索相关demo 搜到一个demo,demo是利用UIScrollView实现的 思考:既然能用UIScrollView实现为什么不用UITableView去实现呢?...使用UITableView就不用考虑复用以及调整scrollView上子控件位置的问题了。...手动敲代码利用UITableView实现具有需求效果的控件,可当UITableView滑动到最后一个cell再滑动到第一个cell的时候出现问题(并不能很流畅地从最后一个cell滑动回第一个cell)。...再添加一个定时器,每隔一定的时间让UICollectionView进行滚动。
UIScrollView是iOS开发中经常用到的UI控件,像图片轮播之类的效果都可以用UIScrollView来实现,当然轮播什么的网上有很多教程了,我就不多说了。...今天主要讲三个跟交互有关的效果(稍微有点标题党啊,其实也没有多进阶……),也不是直接用的UIScrollView,而是它的子类UITableView和UIWebView。...列表上面是三个栏目按钮和轮播图片,向上滚动时,按钮和图片一起向上,按钮周边区域颜色渐变,然后在到指定位置时(这里是盖住导航栏之后)按钮停住不动,周边颜色也完全变成导航栏的颜色,列表数据还可以继续滚动。...这个属性是UIScrollView的,用来指定内容边界,UITableView继承自UIScrollView,当然也含有这个属性。...嗯,有什么问题欢迎评论。
UIScrollView 恐怕是所有 App 都绕不过去的类——尤其是它的子类 UITableView 和 UICollectionView。...比如具体 item 的尺寸大小, item 之间的间距,header 和 footer 的大小和间距,以及 UICollectionView 的滚动方向。...关键词:#渲染 #多线程 #网络传输 拿到问题第一步要分析原因,列表视图滑动很慢,肯定是 UI 或是数据上出了问题,它们可能是: 列表渲染时间较长。可能原因是某些 UI 控件比较复杂,或者图层过多。...数据源问题。可能原因是网络请求太慢,不能及时得到相应数据;也有可能是需要更新的数据太多,主线程一时处理不过来。 然后我们针对三个问题,分别去进行优化。...这就是无限滚动列表。
,这里的key = imageUrl,value = 下载的image图片 读取的时候判断YYCache中是否有该url,有的话,直接读取缓存图片数据,没有的话,走图片下载逻辑,并缓存图片 问题所在...*)scrollView{ [self p_loadImage]; } //手放开了-使用惯性-产生的动画效果 - (void)scrollViewDidEndDragging:(UIScrollView...-)iOS本来就是提前进入寒冬,iOS小白们可以尝试思考下这个问题 问:UITableView的圆角性能优化如何实现 答: 让服务器直接传圆角图片; 贝塞尔切割控件layer; YYWebImage为例...]; // a large value }; SDWebImage同理,它有暴露了一个方法出来,可以直接设置保存图片到磁盘中,无需修改源码 “winner is coming”,如果面试正好遇到以上问题的...Demo源码 ---- 参考资料 iOS 保持界面流畅的技巧 VVeboTableViewDemo YYKitDemo UIScrollView 实践经验
前面两篇文章聊的UITableView和UICollectionView都是继承自UIScrollView,本篇文章就来简单聊聊UIScrollView。 ?...contentSize是scrollView视图的内部内容可以滚动的区域大小,也就是scrollView视图内容的实际大小。...contentOffset是scrollView实际滚动区域的左上角与视图可视区域左上角的距离。 pagingEnabled是是否以一页的大小整体进行滚动,也就是用来实现翻页的效果。...UIScrollView的一些常用的代理方法如下: #pragma mark - UIScrollViewDelegate //监听页面滚动,根据scrollView.contentOffset来做业务逻辑...用于页面滚动停止的时候开启一个逻辑,比如视频自动播放(页面停止滚动后,开启视图滚动前暂停的gif或者视图的播放) - (void)scrollViewDidEndDecelerating:(UIScrollView
对于按钮移动的动画就没有去花时间还原了,毕竟这里主要是为了实现滚动压缩、展开Header,动画不讨论。 ? 实现思路 如图所示: ?...首先在要将该界面分成两部分:一个ScrollHeader,一个UITableView。 ScrollHeader占据屏幕上方,高度为展开后的高度 UITableView占据整个屏幕,这样可以完全滚动。...为了让内容不被ScrollHeader遮盖,设置contentOffset属性即可 我这里用的ScrollHeader是作为独立的控件使用,与UITableView的HeaderView并无关系...由于我的ScrollHeader继承的是UIView,所以为了处理滑动,为其设置一个UIScrollView @property (nonatomic, strong) UIScrollView *headerScrollView...; 这个属性的作用就是获得UITableView对应的scrollView,因为UITableView本身是继承UIScrollView的,所以在初始化ScrollHeader的时候可以这么写: MyScrollHeader
) -> Int { return 1 } override func tableView(_ tableView: UITableView, numberOfRowsInSection...section: Int) -> Int { return 11 } override func tableView(_ tableView: UITableView,...,UIScrollView用来监听外界的拉取动作。...这里需要根据滚动的高度来进行判断进度,先声明一个progress的CGFloat属性。...var progress: CGFloat = 0.0 在scrollViewDidScroll 里面算出向上滚动的高度,然后处理本身view的大小和1比较取最小值,然后根据得到的progress设置
1 简介 UIScrollView 是负责滚动的视图。苹果最强大的地方就在于其良好的UI展示,和UE体验。如果不会很好的使用UIScrollView,就等于丧失了苹果一般的法力。...UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容 1.1 工作原理 在缩放的时候,原理是操作被缩放控件的的transform数值。...常见的几个重要控件 UITableView UICollectionView UITextView 1.3 UIScrollView常见的重要属性 属性名 作用 contentSize 设置UIScrollView...的滚动范围 contentOffset UIScrollView当前滚动的位置 contentInset 增加滚动视图四周的增加滚动范围 bounces 是否有弹簧效果,默认是开启的 scrollEnabled...滚动视图是否被分割成多个独立的页面 1.4 手工代码实现拖动 // 创建scrollView UIScrollView *scrollView = [[UIScrollView
MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。...MHYahooParallaxView - 类似于Yahoo Weather和News Digest首屏的视差滚动。...ZLSwiftRefresh - swift下拉刷新/上拉加载更多,支持自定义动画,集成简单,兼容UITableView / CollectionView / ScrollView / WebView...PullToBounce - 为UIScrollView下拉刷新的动画。 WaterDropRefresh - 仿道路水滴的下拉刷新效果还有视差滚动。...通过一个UIScrollView的扩展,可以轻松为UIScrollView的所有子类添加下拉刷新功能。
内容可滚动。...数据联动 在某一列滚动的时候,重新设置联动列的显示数据,然后进行刷新操作。...UIScrollView、UIPageControl UIScrollView 滚动控件 三个重要属性 contentSize:UIScrollView 滚动的范围。...contentOffset:UIScrollView 当前显示区域的顶点相对于内容左上角的偏移量(滚动到了什么位置)。...contentInset:ScrollView的内容相对于 UIScrollView 的上下左右的留白。 UIPageControl 页面指示器 一般配合 UIScrollView 分页使用。
//处理uitableview section的悬浮问题,禁止section悬浮停留 - (void) scrollViewDidScroll: (UIScrollView*)scrollView {...做到前几点后,你的table view滚动时应该足够流畅了,不过你仍可能让用户感到不爽。常见的现象就是在更新数据时,整个界面卡住不动,完全不响应用户请求。...例如每次载入50条信息,那就可以在滚动到倒数第10条以内时,加载更多信息: - (void) tableView: (UITableView *)tableView willDisplayCell: (...//www.keakon.net/2011/07/26/利用预渲染加速iOS设备的图像显示 优化UITableView滚动性能 http://blog.csdn.net/chaoyuan899/article.../article/details/18262565 UITableVIew滚动流畅性优化 http://blog.csdn.net/enuola/article/details/41942963 uitableview
简介 项目主页:https://github.com/dzenbot/DZNEmptyDataSet 提示:主要用于UITableView和UICollectionView,也可以用于UIScrollView...,其实主要是前两个会用到空白或者网络出错页 采用给UIScrollView添加代理方法来给页面添加空白页,源码很有学习意义 导入工程 自动, pod 'DZNEmptyDataSet' 手动 https...://github.com/dzenbot/DZNEmptyDataSet 下载解压,Source文件夹下的文件拖入工程 导入头文件: #import "UIScrollView+EmptyDataSet.h...*)scrollView { return YES; } //是否允许滚动,默认NO - (BOOL)emptyDataSetShouldAllowScroll...:(UIScrollView *)scrollView { } //空白页按钮点击事件 - (void)emptyDataSetDidTapButton:(UIScrollView
属性导致 处理方案: 统一在appDelegate的didFinishLaunchingWithOptions的最开始增加: Swift: if#available(iOS 11.0, *) {UIScrollView.appearance...().contentInsetAdjustmentBehavior=.never} OC: if (@available(iOS 11.0, *)) {UIScrollView.appearance.contentInsetAdjustmentBehavior
在此基础上海加了一个隐藏列表时的动态渐入渐出效果,如下: 实现 实现的要点是,顶部的视图要随着列表的滚动而滚动,且列表最上是可以滚动到屏幕顶部的,最下就是滚动到一个固定的位置就不再往下滚动了,至于渐变效果只要能控制滚动自然也能控制随着滚动去改变...要注意的是,设置contentoffset值必须在添加列表到self.view之后,否则无效,设置之后可能你会发现刚开始是好的,一点击列表内容就回到顶部了,别慌,那是之后会解决的问题: self.tableView...= [[UITableView alloc] initWithFrame:CGRectMake(0, 0, SCREENWIDTH, SCREENHEIGHT)]; self.tableView.delegate...,就必须获知列表的滚动效果,这里我们在自定义的顶部视图类中加一个UIScrollView属性,在初始化的时候就将我们的列表赋给这个属性(UITableView是UIScrollView的子类):...对于滚动的跟随,我们采用KVO键值观察(可以查看这篇博客来了解)来做。
领取专属 10元无门槛券
手把手带您无忧上云