国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS UICollectionView刷新時閃屏的解決方法

2019-10-21 18:43:39
字體:
來源:轉載
供稿:網友

在做相冊的時候遇到了一個問題,就是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];  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 微山县| 徐水县| 永城市| 淄博市| 大名县| 香港| 镇远县| 杨浦区| 临澧县| 梧州市| 佛冈县| 卓尼县| 德钦县| 汕头市| 修水县| 桐城市| 武山县| 新竹市| 梁河县| 淮安市| 建水县| 唐海县| 新田县| 堆龙德庆县| 凤城市| 吐鲁番市| 乌拉特中旗| 白山市| 常德市| 嘉荫县| 新泰市| 三门县| 绥芬河市| 舒城县| 崇明县| 平南县| 南安市| 濉溪县| 容城县| 山东| 鄂托克前旗|