6

我有一个带有单个子视图的 UIScrollView,一个由 CATiledLayer 支持的 UIView。除了一个例外,一切都运行良好:当我将图像从一个更改为另一个时,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 回答