UITableViewCell 上的 PFImageView 断断续续的滚动

Posted

技术标签:

【中文标题】UITableViewCell 上的 PFImageView 断断续续的滚动【英文标题】:PFImageView on UITableViewCell choppy scroll 【发布时间】:2015-08-19 11:05:33 【问题描述】:

我在 tableview 上使用自定义单元格,并且我有一个 PFImageView 背景图像出口(来自 Interface Builder)。

当我滚动表格并且即将出现的单元格背景图像是第一次加载时(不涉及缓存),它会产生令人讨厌的跳转视觉效果。

当图像已经缓存时,不会产生这种奇怪的效果。 我使用这段代码 sn-p 来异步加载图像:

_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 的图像时会出现这种效果。

还有其他解决方案可以避免这种奇怪的行为吗?

谢谢。

【问题讨论】:

【参考方案1】:

那是因为 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];
    

];

【讨论】:

以上是关于UITableViewCell 上的 PFImageView 断断续续的滚动的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 上的动画

如何使 UITableViewCell 上的 UIProgressView 立即更改?

UITableViewCell 上的 UITextView

UITableViewCell 内的 UIView 上的 UIGestureRecognizer

UITableViewcell 和 UITableVIew 上的手势识别器

自定义 UITableViewCell:“loadNibNamed:”上的 SIGABRT