2011-06-07 112 views
0

我正在制作一个应用程序,其中一个功能是在页面上放置预制的涂鸦的能力,他们将有能力缩放涂鸦并将它们放在他们想要的地方。这全部用于iPad。我是否需要为此使用开放式GL?还是有更好/更简单的方法? (iOS编程新手)涂鸦... Open GL?

回答

1

您应该可以使用CALayer来实现这一点。您需要添加QuartzCore框架才能运行。这个想法将代表每个涂鸦作为一个单一的CALayer。如果您的涂鸦是图像,则可以使用contents属性将涂鸦分配到图层。您需要指定一个CGImageRef对象,您可以使用UIImage对象的CGImage属性轻松检索该对象。

您将需要一个视图,这将是您的绘图板。由于您希望能够移动和更改涂鸦的大小,因此您必须附加用于移动图层的UIPanGestureRecognizer对象和用于缩放涂鸦和缩小的UIPinchGestureRecognizer。由于识别器只能附加到视图而不是图层,因此调用手势处理程序时的非平凡部分将标识视图的哪个子图层是他们操纵的。您可以使用locationInView:作为平移手势,使用locationOfTouch:inView:作为捏合手势,而视图参数是可以使用gesture.view获取手势的视图。一旦确定焦点图层,可以使用translationInView:作为平移手势来移动图层,并使用捏合手势的scale属性来转换图层。

虽然CALayer对象是轻量级对象,但如果对象太多,可能会遇到问题。所以压力测试你的应用程序另一个障碍是图像通常是记忆猪,所以你可能无法获得很多涂鸦。