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中關(guān)于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)與設(shè)計
相關(guān)文章
iOS中tableview 兩級cell的展開與收回的示例代碼
本篇文章主要介紹了iOS中tableview 兩級cell的展開與收回的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
詳解iOS應(yīng)用使用Storyboard布局時的IBOutlet與IBAction
這篇文章主要介紹了iOS應(yīng)用使用Storyboard布局時的IBOutlet與IBAction,文中還附帶講解了為什么IBOutlet屬性是weak的,需要的朋友可以參考下2016-04-04
iOS Swift利用UICollectionView實現(xiàn)無限輪播功能(原理)詳解
無線輪播圖的實現(xiàn)方式有很多,下面這篇文章主要給大家介紹了關(guān)于iOS Swift利用UICollectionView實現(xiàn)無限輪播功能(原理)的相關(guān)資料,需要的朋友可以參考下2018-09-09

