1

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

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

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

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

塔,乔尔斯。

4

1 回答 1

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 的宽度和高度表示图像将在缩放视图中显示的百分比。

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

于 2009-11-24T22:52:49.737 回答