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

首頁 > 系統(tǒng) > iOS > 正文

iOS UICollectionView刷新時(shí)閃屏的解決方法

2020-07-26 02:37:00
字體:
供稿:網(wǎng)友

在做相冊(cè)的時(shí)候遇到了一個(gè)問題,就是UICollectionView刷新的時(shí)候會(huì)閃屏,網(wǎng)上搜了搜,解決的方法也是挺多,并沒有一一嘗試,只是存下來做個(gè)筆記,來看看遇到的幾種方法。

方法一:

[UIView performWithoutAnimation:^{    //刷新界面     [self.collectionView reloadData];  }]; 

把刷新界面的事件放在這個(gè)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的動(dòng)畫,比如這樣:

- (void)layoutSubviews{  [super layoutSubviews];    self.frameLayer.frame = self.frameView.bounds;}

上述情況多用于自定義控件使用了layer.mask的情況,如果有這種情況,上面提到的方法是無法取消CALayer的動(dòng)畫的,但是解決辦法也很簡單:

- (void)layoutSubviews{  [super layoutSubviews];    [CATransaction begin];  [CATransaction setDisableActions:YES];    self.frameLayer.frame = self.frameView.bounds;    [CATransaction commit];  }

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东阿县| 安庆市| 南郑县| 手游| 方正县| 寻乌县| 伊川县| 高陵县| 湾仔区| 友谊县| 五莲县| 保山市| 白山市| 灌阳县| 寿光市| 黔西县| 蓬安县| 广州市| 新郑市| 白城市| 开平市| 新昌县| 温泉县| 东平县| 峨山| 邹平县| 张家界市| 乌海市| 内乡县| 小金县| 杨浦区| 东源县| 海盐县| 庐江县| 蓝山县| 寻乌县| 溆浦县| 射洪县| 洛川县| 宣化县| 定襄县|