使用UITableView、UICollectionView时,当数据变更了,需要重新调用reloadData刷新时,有时候界面会出现闪烁。 造成闪烁的原因,主要是因为CALayer有一个隐式动画,只要在调用reloadData刷新时,关闭隐式动画就可以避免了。代码示例如下: [CATransact ...
分类:
其他好文 时间:
2021-07-22 17:41:22
阅读次数:
0
UICollectionView与UITableView类似,都可以使用reloadData来进行cell内容的更新。 UICollectionView可以采用reloadItemsAtIndexPaths方法。 self.collectionView.reloadItems(at: [indexP ...
分类:
移动开发 时间:
2020-06-09 16:56:19
阅读次数:
169
参考:https://www.jianshu.com/p/5f033fdd4ddb 一般情况下 if (@available(iOS 11.0, *)) { self.estimatedRowHeight = 0; self.estimatedSectionFooterHeight = 0; sel ...
分类:
其他好文 时间:
2019-12-21 13:31:12
阅读次数:
178
原因: UITableview有个估算行高功能,如果没有设置tableView.estimatedRowHeight = 0,默认开启,默认高度是44,也就是如果你实际行高和44偏差很大的话,每次reloadData就会先根据估算行高进行刷新然后再走heightForRow去获取真正高度,就会视觉上 ...
分类:
移动开发 时间:
2018-10-20 00:49:49
阅读次数:
336
滚动一定要在 tableView.reloadData()之后进行 1. 默认 plain 模式 2. 分组的 grouped ...
分类:
编程语言 时间:
2018-09-25 12:40:47
阅读次数:
1644
解决方法: 在iOS 11Self-Sizing自动打开后,contentSize和contentOffset都可能发生改变。可以通过以下方式禁用 self.estimatedRowHeight = 0;self.estimatedSectionHeaderHeight = 0; self.esti ...
分类:
移动开发 时间:
2018-09-11 16:19:39
阅读次数:
442
- (void)viewDidLoad { [super viewDidLoad]; // 添加控件等操作 [self.customsTableView reloadData]; dispatch_async(dispatch_get_main_queue(),^{ if (self.customs ...
分类:
其他好文 时间:
2018-09-11 16:14:37
阅读次数:
163
Swift 关闭视图的过度动画 //关闭视图过渡动画 UIView.performWithoutAnimation { //关闭CALayer的隐式动画 CATransaction.setDisableActions(true) self.collectionView.reloadData() CA ...
分类:
编程语言 时间:
2018-06-01 01:01:01
阅读次数:
234
1. [tableView reloadData]; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ /*contentsize ...
分类:
移动开发 时间:
2017-10-25 19:41:49
阅读次数:
211
如果在reloadData后需要立即获取tableview的cell、高度,或者需要滚动tableview,那么,直接在reloadData后执行代码是有可能出问题的。 reloadDate并不会等待tableview更新结束后才返回,而是立即返回,然后去计算表高度,获取cell等。 如果表中的数据 ...
分类:
其他好文 时间:
2017-09-27 13:06:28
阅读次数:
133