我有一个带有单个子视图的UIScrollView,一个由CATiledLayer支持的UIView。一切正常,只有一个例外:当我将图像从一个更改为另一个时,CATiledLayer会缓存之前的图像缩放级别。在加载更新的图像之前,滚动然后在一瞬间显示旧图像。
有没有办法彻底清除CATiledLayer的缓存,因此它不显示旧图像? CATiledLayer显然知道支持图像发生了变化,因为它要求它代表新的瓷砖...
答案 0 :(得分:24)
我认为你让它变得比它需要的复杂一点。我相信你所要做的就是将你的CATiledLayer的内容设置为nil。
myCATiledlayer.contents = nil.
答案 1 :(得分: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
}
这适合我。