iOS UICollectionView 包含gif動畫UIImageView消失bug

UICollectionView中放置imageView各種操作并不會導致什么問題, 但是這個imageView如果是animation的效果, 那么就會詭異的消失, 不知道是否算bug, 這時候需要給imageView和collectionView分別配置


修復方式

imageView 配置
//在uiimageview的內部設置高亮動畫內容, 可以設置為默認相同的images地址

[self setHighlightedAnimationImages:images];
collectionView 配置
//沒錯, 就是在選中, 取消選中, 高亮, 取消高亮下都讓cell的動畫再開始播放

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
    CustomCell * cell = (CustomCell *)[collectionView cellForItemAtIndexPath:indexPath];
    if(cell){
        [cell.imageView startAnimating];
    }
}

-(void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath{
    CustomCell * cell = (CustomCell *)[collectionView cellForItemAtIndexPath:indexPath];
    if(cell){
        [cell.imageView startAnimating];
    }
}

-(void)collectionView:(UICollectionView *)collectionView didHighlightItemAtIndexPath:(NSIndexPath *)indexPath{
    CustomCell * cell = (CustomCell *)[collectionView cellForItemAtIndexPath:indexPath];
    if(cell){
        [cell.imageView startAnimating];
    }
}
-(void)collectionView:(UICollectionView *)collectionView didUnhighlightItemAtIndexPath:(NSIndexPath *)indexPath{
    CustomCell * cell = (CustomCell *)[collectionView cellForItemAtIndexPath:indexPath];
    if(cell){
        [cell.imageView startAnimating];
    }
}

屏蔽方式

可以將collectionView的cell交互禁掉

layerCollection.allowsSelection = false;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容