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

优雅的处理网络数据,你真的吗?不如看看这篇.

但是,当需要显示大量数据,确保平滑如丝的滚动可能非常的棘手。所以今天正好趁这个机会,和大家分享一下处理大量可滚动数据方面的个人经验。...,然后控件底部显示一个 Loading 动画,待请求数据返回后,Loading 动画消失,由 UITableView 或者 UICollectionView 控件继续加载这些数据并显示给用户,效果如下图所示...为了改善应用程序体验, iOS 10 ,Apple 对 UICollectionView 和 UITableView 引入了 Prefetching API,它提供了一种需要显示数据之前预先准备数据的机制...首先,我先和大家介绍一个概念:无限滚动,无限滚动是可以让用户连续的加载内容,而无需分页。 UI 初始化的时候 App 会加载一些初始数据,然后当用户滚动快要到达显示内容的底部加载更多的数据。...如何避免滚动的卡顿 当你遇到滚动卡顿的应用程序时,通常是由于任务长时间运行阻碍了 UI 主线程的更新,想让主线程有空来响应这类更新事件,第一步就是要将消耗时间的任务交给子线程去执行,避免获取数据阻塞主线程

1.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

【iOS开发】解决 UITableview 中选中 Cell 后,Cell 复用导致选中状态消失、应用闪退的问题

如图,是一个可以多项选择的 UITableview,但是因为 iOS 的 Cell 复用机制,即下面的 reuseIdentifier 部分 let cell:UITableViewCell=UITableViewCell...Checkmark状态,但是当页面滚动至不可见某个Cell,再滚动回来时,Cell 的 Checkmark状态消失了。...当页面滑动,我们标记为Checkmark的Cell会被复用,从而丢失这个状态。...cellForRowAtIndexPath 方法中,查看哪些cell是应该被选中过的,然后改成Checkmark状态;         结果就可能产生数组越界、App崩溃,以及错误的indexPath... cellForRow 方法中,不需要for循环可以三行代码给cell加Checkmark标记。 ?

1.9K20

iOS开发中行高灵活可变的UITableView的性能优化

以iOS9为例,一行cell要展示屏幕,至少要执行5遍TableView的heightForRowAtIndexPath方法: TableView配置部分: ① 当TableView视图即将展现在屏幕...TableViewCell配置部分,只有当cell将要出现在屏幕才会出现,并且只拉取当前行的行高,这两种场景会在用户滑动TableView不断被执行,并且根据UITableView的布局cell原理...当执行TableView的reloadData方法进行界面刷新,系统先会把所有行的行高数据拉取一遍,之后和UITableViewCell配置部分的场景一直,拉取即将出现在屏幕的cell的行高数据。...至于为何UITableView进行配置也需要拉取所有的行高数据,我猜想其为了进行视图的一些初始化操作,例如表视图右侧滚动条的宽度和所占比例等。...关于细节方面,还有一个问题需要注意,预估的行高会影响到TableView右侧滚动条的展现,如果每个cell行高跳跃跨度十分大,滚动条宽度的配置失准,随着用户滑动表视图,右侧滚动条可能会出现长短跳跃的情况

1.9K20

一个多UITableview的左右滑动简单解决方案

前言 本文源自实际开发中的需求,核心的要求有几个: 1、多个UITableview要支持左右滑动; 2、点击Tab也要有UITableview的滑动切换效果; 3、每个UITableview单独的下拉刷新和拉加载...self.mContainerScrollView.contentSize = CGSizeMake(self.view.width * 4, 0); // 写0,关闭vertical的滚动 如果需要滚动到某一页...当UIScrollView直接添加到self.view的属性,如果automaticallyAdjustsScrollViewInsets为YES,会调整UIScrollView的inset以适应status...总结 多UITableview的VC本身已经有上万行代码,散布十几个Category里面。相对于老代码的迁移,这次新增一个左右滑动功能的代码简直是微不足道。...代码复杂度已经很高的架构里实现功能,犹如在钢绳交错的天空中行走,一不小心就踏空踩到Bug;又可能明明走在自己的这条钢绳,结果把别人甩到坑里去。 三思而后行,代码以兼容稳健为主。

2.7K71

iOS开发常用之网络

TabBarController,支持自定义TabBarItem样式或添加动画 隐藏与显示 SlideTapBar - 滚动栏菜单,向上滚动隐藏tabbar,向下滚动马上显示tabbar。...DCPathButton - Path,4.0的弹出菜单,呼出或者关闭菜单,多个小图标会分别按照逆时针和顺时针的方向进行滚动。...MediumScrollFullScreen - Medium的可扩展滚动页面,上下滚动,全屏显示内容,并自然消隐上下菜单。...拖拉到一定的长度消失,可以通过系数设置来控制拖拉的长度。气泡也支持多种属性设置。 PPDragDropBadgeView - 实现了类似于QQ 5.0的水滴拖拽效果。...KYAnimatedPageControl - 除了滚动视图PageControl以动画的形式一起移动,点击目标页还可快速定位。支持两种样式:粘性小球和旋转方块。

23.6K10

UITableView性能优化-中级篇

老实说,UITableView性能优化 这个话题,最经常遇到的还是面试中,常见的回答例如: Cell复用机制 Cell高度预先计算 缓存Cell高度 圆角切割 等等. . ....*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 被调用了20次,不符合 需求1的要求 解决办法: cell每次被渲染,判断当前...tableView是否处于滚动状态,是的话,不加载图片; cell 滚动结束的时候,获取当前界面内可见的所有cell 2的基础之上,让所有的cell请求图片数据,并显示出来 步骤1: - (UITableViewCell...下的任务暂停 停止滚动的时候 - 进入`defaultMode` - 继续执行`trackingMode`下的任务 - 例如这里的loadImage */...,可以先下载图片,再对图片进行圆角处理,再设置到cell显示 问:YYWebImage 如何设置圆角?

1.5K20

iOS UITableView左滑操作功能的实现(iOS8-11)

4、上面1.2和1.3中实现的方法的区别 体验的不同就是当左滑只有一个button,iOS 11中可以一直左滑,滑到一定程度执行点击按钮的操作,iOS 11之前的不会。...iOS 11之前如果想增大button区域,可通过标题前后加空格的方式,但iOS 11不行,加空格无效,button大小固定,超过4个字换行显示。...实现的思想是hook系统实现,但鉴于UITableView的view层级结构iOS 11中有所改变,所以iOS8-10和iOS11的实现有所不同,以下分别给出。...由上图可知,左滑的操作按钮是UITableView的子view,所以我们可以UITableView的category中hook掉layoutSubviews方法,找到UISwipeActionPullView...上一个cell逐渐消失,当此cell左滑操作完成,上一个左滑的cell也完成消失

1.1K81

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

1.3 关于重用         为了得到高效的View,对于cell的重用是必须的,避免了不断生成和销毁对象的操作,这与UITableView中的情况是一致的。...但值得注意的UICollectionView中,不仅cell可以重用,Supplementary View和Decoration View也是可以并且应当被重用的。...selectedBackgroundView,是cell被选中的背景     • 最后是一个contentView,自定义内容应被加在这个view         这次Apple给我们带来的好康是被选中...cell的自动变化,所有的cell中的子view,也包括contentView中的子view,在当cell被选中自动去查找view是否有被选中状态下的改变。...需要注意根据滚动方向不同,header和footer的高和宽中只有一个起作用。垂直滚动section间宽度为该尺寸的高,而水平滚动为宽度起作用,如图。

41430

iOS UITableView左滑操作功能的实现(iOS8-11)

4、上面1.2和1.3中实现的方法的区别 体验的不同就是当左滑只有一个button,iOS 11中可以一直左滑,滑到一定程度执行点击按钮的操作,iOS 11之前的不会。...iOS 11之前如果想增大button区域,可通过标题前后加空格的方式,但iOS 11不行,加空格无效,button大小固定,超过4个字换行显示。...实现的思想是hook系统实现,但鉴于UITableView的view层级结构iOS 11中有所改变,所以iOS8-10和iOS11的实现有所不同,以下分别给出。...由上图可知,左滑的操作按钮是UITableView的子view,所以我们可以UITableView的category中hook掉layoutSubviews方法,找到UISwipeActionPullView...上一个cell逐渐消失,当此cell左滑操作完成,上一个左滑的cell也完成消失

59940

iOS流水布局UICollectionView简单使用引实现结

引 开发中我们最常看到的可能是表视图UITableView了,但其实还有一个视图也很常见,特别是一些图片、商品、视频的展示界面,用UICollectionView来展现往往更加方便。...如果熟悉UITableView的话,其实很多地方都是类似的,甚至可以说UITableView是一种特殊的UICollectionView,正如正方形是一种特殊的矩形一样,UITableView就是一种每行只放一个方块的...自定义Cell 根据UITableView的经验。首先看每个方块,也就是每个cell怎么呈现,这里的cell明显是自定义的,我们用一张图片填满cell,同时底部居中的位置放置一个label。...为了显得真实一点,我用了一个随机数来决定每个cell显示的图片和文字,这样呈现的时候就不会太过千篇一律。...代码中注释了一行,就是用来设置滚动方向为水平的,效果如下: 同样的内容,滚动方式变化后,呈现的效果也变化。

1K00

iOS UITableView左滑操作功能的实现(iOS8-11)

4、上面1.2和1.3中实现的方法的区别 体验的不同就是当左滑只有一个button,iOS 11中可以一直左滑,滑到一定程度执行点击按钮的操作,iOS 11之前的不会。...实现的思想是hook系统实现,但鉴于UITableView的view层级结构iOS 11中有所改变,所以iOS8-10和iOS11的实现有所不同,以下分别给出。...1、iOS 8-10 设置标题颜色和字体 左滑操作后,UITableView的层级结构如下图: [4.png] 由上图可知,左滑的操作按钮是UITableViewCell的子view,所以我们可以UITableViewCell...代码如下: [5.png] 2、 iOS 11 设置标题颜色和字体 左滑操作后,UITableView的层级结构如下图: [6.png] 由上图可知,左滑的操作按钮是UITableView的子view...上一个cell逐渐消失,当此cell左滑操作完成,上一个左滑的cell也完成消失

1.7K80

iOS开发笔记(十一)— UITableView、ARC、xcconfig、Push

前言 分享iOS开发中遇到的问题,和相关的一些思考,本次内容包括:UITableView滚动问题、ARC、xcconfig、Push证书。...正文 UITableView UITableViewreloadData 的时候,如果height的高度发生较大变化,contentOffset无法保持原来的大小时,会发生滚动的效果。...UITableView还有类似的问题,如果列表项过多时,scrollToRowAtIndexPath有时并不准确,比如有1000行滚动到第500行,此时可能会出现滚到501或者499行的情况。...最近同事遇到一个问题,以下代码crash: 他实现了一个editingButton的getter,同时dealloc的时候将其移除; 如果editingButton整个生命周期都没有初始化时,...总结 这些都是项目中遇到的一些问题,UITableView这个是老生常谈,ARC那篇文档是很好的学习资料,xcconfig需要多研究,未来随着版本和渠道增多会越来越复杂,PushEasy APNs

1.8K20
领券