0

テーブルビューでカスタム セルを使用しており、(Interface Builder からの) 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];
    }
}];

この効果は、200kb を超える画像を読み込むときに発生することに気付きました。

この奇妙な動作を回避する他の解決策はありますか?

ありがとうございました。

4

1 に答える 1

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

}];
于 2015-08-20T10:46:36.820 に答える