您可能知道,CATiledLayer
用于通过显示适合视图大小的平铺图像来显示大图像。
我CATiledLayer
的工作方式类似于可以在iOS文档中找到的示例,我计算了哪个行和列drawRect:(CGRect)
rect正在尝试绘制其内容。
当第一次出现视图时,它开始在空白视图上按平铺绘制,而该视图/图层后面没有任何内容。我试图首先放置低分辨率图像以填充图层,然后开始绘制平铺视图。
就像您在浏览PDF页面时一样,每个页面最初都以非常差的图像表示,但它足以看到内容布局,当您停在某个页面时,此页面会变得更加清晰。
我知道我可以在catiledlayer上添加子图层但是我无法在catiledlayer后面添加任何图层,因为这是一个版主图层。我还认为在同一层加载背景图像非常重要,这样才能正确缩放。
有谁知道如何实现这个目标?
答案 0 :(得分:1)
我终于想出了这个以及关键评论的thanx。
你需要做什么:
UIView *imageView = [[UIView alloc] initWithFrame:viewFrame];
DCTiledLayer *tiledLayer = [[DCTiledLayer alloc] initWithData:myData];
CALayer *lowResLayer = [CALayer layer];
lowResLayer.position = CGPointMake(CGRectGetMidX(viewFrame), CGRectGetMidY(viewFrame));
lowResLayer.bounds = viewFrame;
lowResLayer.contents = (id)[lowResImage CGImage];
[imageView.layer addSublayer:lowResLayer];
[imageView.layer addSublayer:tiledLayer];
它就像一个魅力。 :)