我在tableview上使用自定义单元格,并且我有一个PFImageView背景图像插座(来自Interface Builder)。
当我滚动表格时,即将出现的单元格背景图像是第一次加载(不涉及caché),会产生恼人的跳跃视觉效果。
当图像已经缓存时,不会产生这种奇怪的效果。 我使用此代码段加载图像异步:
_ivBackground.image = nil;
_ivBackground.file = recipe.photo;
[_ivBackground loadInBackground:^(UIImage *image, NSError *error) {
if (!error) {
[UIView transitionWithView:_ivBackground
duration:0.2f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
_ivBackground.image = image;
} completion:NULL];
}
}];
我注意到加载大于200kb的图像时会出现这种效果。
还有其他解决办法可以避免这种奇怪的行为吗?
谢谢。
答案 0 :(得分:0)
那是因为PFImageView已经设置了图像(没有动画)。 如果你想要一个自定义动画,也许你应该实现自己的UIImageView子类。
或者,您可以在动画通话之前尝试拨打_ivBackground.image = nil;
(我还没有尝试过)。
[_ivBackground loadInBackground:^(UIImage *image, NSError *error) {
_ivBackground.image = nil;
if (!error) {
[UIView transitionWithView:_ivBackground
duration:0.2f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
_ivBackground.image = image;
} completion:NULL];
}
}];