iOS UICollectionView刷新時閃屏的解決方法
在做相冊的時候遇到了一個問題,就是UICollectionView刷新的時候會閃屏,網(wǎng)上搜了搜,解決的方法也是挺多,并沒有一一嘗試,只是存下來做個筆記,來看看遇到的幾種方法。
方法一:
[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]; }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- iOS 通過collectionView實現(xiàn)照片刪除功能
- iOS中關于Swift UICollectionView橫向分頁的問題
- iOS自定義UICollectionViewLayout實現(xiàn)瀑布流布局
- 使用iOS控件UICollectionView生成可拖動的桌面的實例
- IOS collectionViewCell防止復用的兩種方法
- iOScollectionView廣告無限滾動實例(Swift實現(xiàn))
- iOS自定義collectionView實現(xiàn)毛玻璃效果
- IOS簡單實現(xiàn)瀑布流UICollectionView
- ios的collection控件的自定義布局實現(xiàn)與設計
相關文章
iOS中tableview 兩級cell的展開與收回的示例代碼
本篇文章主要介紹了iOS中tableview 兩級cell的展開與收回的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03詳解iOS應用使用Storyboard布局時的IBOutlet與IBAction
這篇文章主要介紹了iOS應用使用Storyboard布局時的IBOutlet與IBAction,文中還附帶講解了為什么IBOutlet屬性是weak的,需要的朋友可以參考下2016-04-04iOS Swift利用UICollectionView實現(xiàn)無限輪播功能(原理)詳解
無線輪播圖的實現(xiàn)方式有很多,下面這篇文章主要給大家介紹了關于iOS Swift利用UICollectionView實現(xiàn)無限輪播功能(原理)的相關資料,需要的朋友可以參考下2018-09-09