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