PFImageView на UITableViewCell прерывистый прокрутки

Я использую пользовательскую ячейку в табличном представлении, и у меня есть выход фонового изображения PFImageView (от Интерфейсного Разработчика).

Когда я прокручиваю таблицу, и фоновое изображение ячейки, которое должно появиться, загружается впервые (без кэша), это вызывает раздражающий визуальный эффект прыжка.

Этот странный эффект не возникает, когда изображение уже кэшировано. Я использую этот фрагмент кода для загрузки изображения асинхронно:

_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];
    }
}];

Я заметил, что этот эффект возникает при загрузке изображений размером более 200 КБ.

Есть ли другое решение, чтобы избежать этого странного поведения?

Спасибо.

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];
    }

}];
Другие вопросы по тегам