时间:2021-05-20
在做相册的时候遇到了一个问题,就是UICollectionView刷新的时候会闪屏,网上搜了搜,解决的方法也是挺多,并没有一一尝试,只是存下来做个笔记,来看看遇到的几种方法。
方法一:
[UIView performWithoutAnimation:^{ //刷新界面 [self.collectionView reloadData]; }];把刷新界面的事件放在这个BLock里就可以了!
方法二
[UIView animateWithDuration:0 animations:^{ [collectionView performBatchUpdates:^{ [collectionView reloadItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:index inSection:0]]]; } completion:nil]; }];方法三
[UIView setAnimationsEnabled:NO]; [self.trackPanel performBatchUpdates:^{ [collectionView reloadItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:index inSection:0]]]; } completion:^(BOOL finished) { [UIView setAnimationsEnabled:YES]; }];如果你的APP只支持iOS7+,推荐使用第一种方式performWithoutAnimation简单方便。
上面说的方法只能解决UIView的Animation,但是如果你的cell中还包含有CALayer的动画,比如这样:
- (void)layoutSubviews{ [super layoutSubviews]; self.frameLayer.frame = self.frameView.bounds;}上述情况多用于自定义控件使用了layer.mask的情况,如果有这种情况,上面提到的方法是无法取消CALayer的动画的,但是解决办法也很简单:
- (void)layoutSubviews{ [super layoutSubviews]; [CATransaction begin]; [CATransaction setDisableActions:YES]; self.frameLayer.frame = self.frameView.bounds; [CATransaction commit]; }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
以计算机为例,显示器闪屏的原因及解决方法: 1、显示器刷新频率设置得太低。当显示器的刷新频率设置低于75Hz时,屏幕常会出现抖动、闪烁的现象,把刷新率适当调高
三星显示器开机闪屏怎么办呢?下面小编收集整理的电脑开机显示器一直闪屏的原因及解决方法,希望可以帮助到你。 电脑开机显示器一直闪屏的原因及解决方法: 原因
三星显示器开机闪屏怎么办呢?下面小编收集整理的电脑开机显示器一直闪屏的原因及解决方法,希望可以帮助到你。 电脑开机显示器一直闪屏的原因及解决方法: 原因
已越狱的朋友有没有遇到ios7.0.4越狱360闪退问题呢?ios7.0.4完美越狱后360闪退解决方法是什么呢?很多朋友都想要知道解决方法,下文将会为大家
ios7.0.4完美越狱后可能会出现邮件闪退的故障,小编带来了ios7.0.4越狱后邮件闪退解决方法,能够有效解决ios7.0.4越狱造成的邮件闪退问题,如果你