CGLayer是一个很好的解决方案吗?

时间:2009-11-24 20:59:54

标签: iphone cglayer

我想在我的应用程序中添加一些功能,我认为使用CGLayer是最好的方法,但之前从未做过任何Quartz绘图(除了一些基本的教程)。

我的目的是显示我的应用程序将在视图的上半部分绘制的图像的完整视图(基于参数的基本几何形状),并在该视图的底部四分之一处显示该图像的放大部分。视图基于用户触摸顶部图像的位置。我希望放大的部分以高分辨率显示,所以我认为我应该将图像绘制到640 x 640 CGLayer上,然后在顶部320 x 320半视图中绘制完整图层(如此缩放在视图的左下角160 x 160处,用户触摸了相关部分,但是未缩放,所以你会看到主图像的四分之一。

当用户在主视图周围移动手指时,左下角的部分视图将从CGLayer重绘,因此没有新的图像渲染,只是CGLayer绘图。

任何人都可以看到我的缺乏经验的大脑可能错过了这种方法的任何问题吗?

Ta,Jools。

1 个答案:

答案 0 :(得分:2)

查看CALayer及其contentsRect参数。它会给你一个相当简单的方法来完成你想要的。您可以将图像视图图层的内容复制到缩放视图图层,如下所示:

[[zoomView layer] setContents:[[tapImageView layer] contents]];

然后像这样设置contentsRect:

[[zoomView layer] setContentsRect:CGRectMake(x, y, 0.25, 0.25)];

你会计算x和y并在touchesMoved中调用它。此代码中设置为0.25的宽度和高度表示图像在缩放视图中显示的百分比。

如果您需要澄清,请告诉我。