——周技术回顾
问题描述
用UIImageView做序列帧的时候,点击屏幕突然发现帧动画和图片消失了,在其他场景是没问题的,看了视图层级结构,UIImageView依然存在,只是帧动画和图片消失,经过学习研究发现是因为UIImageView传递的响应链中如果有UITableView或者UICollectionView等控件的时候,点击界面,动画和图片就会消失。
导致这个问题的原因是因为我们做动画的时候只是单纯的给UIImageView设置图片数组,并没有设置它的hightlight状态,如果点击界面,响应链中的tableView或collectionView就会设置自己的hightlight状态,这就导致了UIImageView图片隐藏,视觉上动画和图片消失的问题。
问题解决
我解决这个问题的做法是重写UIImageview的setHighlighted方法,设置其状态为YES,这样点击界面动画和图片就不会消失了。
其实还有一个方案就是重写UICollectionView的shouldHighlightItemAtIndexPath方法返回NO,取消collectionView的hightlight状态。
-(BOOL)collectionView:(UICollectionView*)collectionView shouldHighlightItemAtIndexPath:(NSIndexPath*)indexPath {
return NO;
}
网友评论