涂鸦......打开GL?

时间:2011-06-07 15:47:37

标签: ios graphics opengl-es

我正在创建一个应用程序,其中一个功能是在页面上放置预制涂鸦,他们将能够放大和缩小涂鸦并将它们放在他们想要的位置。这一切都适用于iPad。我需要使用开放式GL吗?还是有更好/更简单的方法? (iOS编程新手)

1 个答案:

答案 0 :(得分:1)

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

您将需要一个视图,它将成为您的绘图板。由于您希望能够移动和更改涂鸦的大小,因此您必须附加UIPanGestureRecognizer对象来移动图层,并UIPinchGestureRecognizer来放大和缩小涂鸦。由于识别器只能附加到视图而不是图层,因此当调用手势处理程序时,非平凡部分将识别它们操纵的视图的哪个子图层。您可以使用locationInView:进行平移手势来获取手势的触摸,使用locationOfTouch:inView:进行捏合手势,其中视图参数是手势正在进行的视图,可以使用{{1 }}。识别出焦点层后,可以使用gesture.view进行平移手势移动图层,并使用捏合手势的translationInView:属性来转换图层。

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