首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

iOS实现TableViewCell出现时弹出动画

发现一个简单的方式可以让TableView变得非常的炫酷,语言描述太苍白,直接看图吧: 在任何有cell先出现在屏幕上的时候都会有这么一个效果,非常的流畅,也非常有意思(忍不住不停地把玩。。)。...实现起来也非常简单,iOS原生支持,几行代码就可以搞定,在众多的tableview代理方法中,我们利用下面这个方法: -(void)tableView:(UITableView *)tableView...willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 这个方法是在cell即将显示时对indexpath...位置的cell进行操作,我们就在这个方法里面加上动画代码,这个动画说白了就是把cell从一个小的变成正常大小,使用UIView简单动画就可以实现(关于UIView简单动画可以看我这篇博客:iOS基础动画教程...代码如下: //给cell添加动画 -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath

1.2K10

你可能需要为你的 APP 适配 iOS 11

导语:iOS 11 为整个生态系统的 UI 元素带来了一种更加大胆、动态的新风格。...本文介绍iOS11中在UI方面做了哪些更新,有些更新可以为用户提供更加完美的体验,但也有的可能会给目前的APP带来异常bug 前言 前几天发现在做的APP在 iOS11 系统上动画有异常,在其他系统的设备上都是正常的...还有其他一些更新。...的个数得到的,并不是最终的contenSize,tableView就不会一次性计算所有的cell的高度了,只会计算当前屏幕能够显示的cell个数再加上几个,滑动时,tableView不停地得到新的cell...总结 大概介绍了iOS 11的UI方面的一些更新,大部分内容都用代码测试过了,有些更新确实是很实用,可以适配下iOS 11,有的更新可能会给现有APP造成bug,所以学习下这些内容还是很有必要的。

1.6K60

iOS开发之UITableView中计时器的几种实现方式(NSTimer、DispatchSource、CADisplayLink)

上述代码比较简单,就是在Cell上添加了一个定时器,然后没1秒更新一次时间,并在Cell的timeLabel上显示,运行效果如下所示。...从该运行效果我们不难发现,当该TableView滚动式,其Cell上的定时器是可以正常工作的。...因为是在子线程中添加的Timer, Timer肯定是在子线程中工作的,所以在更新UI时,我们需要在主线程中进行更新,具体代码如下所示: ?...当然在子线程中更新UI还是需要在主线程中去操作的。下方就是上述代码的运行效果。从该效果中我们不难看出,当滑动TableView时定时器是可以正常工作的。 ?...我们开启了一个新的线程,并且将CADisplayLink对象添加到这个子线程的RunLoop中,然后在主线程中更新UI即可。具体代码如下: ? 我们对上述代码运行,下方是其对应的运行结果。

1.3K70

你可能需要为你的 APP 适配 iOS11

本文介绍了iOS11在UI方面做了哪些更新,有些更新可以为用户提供更加完美的体验,但也有的可能会给目前的APP带来异常bug。...之后,也就是说tableView reloadData之后,tableView的contentOffset发生了几次变化。...如下图所示: 还有其他一些更新。...的个数得到的,并不是最终的contenSize,tableView就不会一次性计算所有的cell的高度了,只会计算当前屏幕能够显示的cell个数再加上几个,滑动时,tableView不停地得到新的cell...见下图对比: 总结 大概介绍了iOS 11的UI方面的一些更新,大部分内容都用代码测试过了,有些更新确实是很实用,可以适配下iOS 11,有的更新可能会给现有APP造成bug,所以学习下这些内容还是很有必要的

2.4K00

【iOS 开发】tableView updates 对比 reloadData

这里 beginUpdates 和 endUpdates 方法的作用是,将这两条语句之间的对 tableView 的 insert/delete 操作聚合起来,然后同时更新 UI。...) // tableView.endUpdates() } 因为第一次 insert 之后,当前 row 的总数量在 UI 上试图 4 变成 5,然而数据源是 6,它会检查使用者对...tableViewUI 操作,最后是不是和 numberOfRows 方法获取的值相对应。...总结 numberOfRows 方法调用: 都只调用一次 numberOfRows 方法 cellForRow 方法调用次数: reloadData 会为当前显示的所有cell调用这个方法,updates...只会为新增的cell调用这个方法 cellForRow 方法调用时间: reloadData 会在 numberOfRows 方法调用后的某一时间异步调用 cellForRow 方法,updates

1.7K30

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

如何避免滚动时的卡顿 当你遇到滚动卡顿的应用程序时,通常是由于任务长时间运行阻碍了 UI 在主线程上的更新,想让主线程有空来响应这类更新事件,第一步就是要将消耗时间的任务交给子线程去执行,避免在获取数据时阻塞主线程...别急,听我娓娓道来,这里我再给大家一个小建议,大家都知道 UITableView 实例化 Cell 的方法是:tableView:cellForRowAtIndexPath: ,相信很多人都会在这个方法里面去进行数据绑定然后更新...UI,其实这样做是一种比较低效的行为,因为这个方法需要为每个 Cell 调用一次,它应该快速的执行并返回重用 Cell 的实例,不要在这里去执行数据绑定,因为目前在屏幕上还没有 Cell。...ProloadTableViewCell else { return } // 图片下载完毕后更新 cell let updateCellClosure...// 1.2 若图片还未下载好,则等待图片下载完后更新 cell dataLoader.loadingCompleteHandle = updateCellClosure

1.3K20

你可能需要为你的APP适配iOS11

本文介绍了iOS11在UI方面做了哪些更新,有些更新可以为用户提供更加完美的体验,但也有的可能会给目前的APP带来异常bug。...之后,也就是说tableView reloadData之后,tableView的contentOffset发生了几次变化。...如下图所示: 还有其他一些更新。...的个数得到的,并不是最终的contenSize,tableView就不会一次性计算所有的cell的高度了,只会计算当前屏幕能够显示的cell个数再加上几个,滑动时,tableView不停地得到新的cell...见下图对比: 总结 大概介绍了iOS 11的UI方面的一些更新,大部分内容都用代码测试过了,有些更新确实是很实用,可以适配下iOS 11,有的更新可能会给现有APP造成bug,所以学习下这些内容还是很有必要的

80120

VC减负若干技巧(一)

继续看QQStoryViewController+Notification,这个category主要处理通知,按照我们上面定义的分界线,处理通知后一般要刷新UI,所以其属于展示数据的一环,是VC的协调职能...但其实仔细分析,一般我们响应通知会做下面操作: 1 不带数据的通知,直接刷新整个UI 2 带数据的通知,先转化数据,再局部更新UI 第一种场景可以直接调VC的接口,第二种场景数据需要进行转化,理论上要先经过数据层做处理或者筛选才能到...接着,我们再来看QQStoryViewController+TableView。顾名思义,这里是处理tableview相关逻辑的地方。...*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath { id cell...item); return cell; } @end VC的调用: void (^configureCell)(PhotoCell*, Photo*) = ^(PhotoCell* cell

91090
领券