6

単一のサブビュー、CATiledLayer に基づく UIView を持つ UIScrollView があります。1 つの例外を除いて、すべてが正常に機能しています。画像をある画像から別の画像に変更すると、CATiledLayer は以前の画像のズーム レベルをキャッシュします。スクロールすると、更新された画像が読み込まれる前に、古い画像が一瞬表示されます。

古い画像が表示されないように、CATiledLayer のキャッシュを完全にクリアする方法はありますか? CATiledLayer は、新しいタイルのデリゲートを要求するため、バッキング イメージが変更されたことを明らかに認識しています...

4

2 に答える 2

25

これを必要以上に複雑にしていると思います。CATiledLayer の内容を nil に設定するだけでよいと思います。

myCATiledlayer.contents = nil.
于 2009-08-13T21:49:30.713 に答える
2
-(void)invalidate
{
    CATiledLayer *tiledLayer = (CATiledLayer *)[self layer];

    tiledLayer.tileSize = CGSizeMake(93,93);//Set a different tile size
    tiledLayer.tileSize = CGSizeMake(92,92);//Restore original tile size
}

これは私にとってはうまくいきます。

于 2013-04-17T08:09:56.163 に答える