我正在创建一个应用程序,其中一个功能是在页面上放置预制涂鸦,他们将能够放大和缩小涂鸦并将它们放在他们想要的位置。这一切都适用于iPad。我需要使用开放式GL吗?还是有更好/更简单的方法? (iOS编程新手)
答案 0 :(得分:1)
您应该可以使用CALayer
来实现此目的。您需要添加QuartzCore
框架才能实现此功能。我们的想法是将每个涂鸦表示为单个CALayer
。如果您的涂鸦是图像,则可以使用contents
属性将涂鸦指定给图层。您需要分配一个CGImageRef
对象,您可以使用CGImage
对象的UIImage
属性轻松检索该对象。
您将需要一个视图,它将成为您的绘图板。由于您希望能够移动和更改涂鸦的大小,因此您必须附加UIPanGestureRecognizer
对象来移动图层,并UIPinchGestureRecognizer
来放大和缩小涂鸦。由于识别器只能附加到视图而不是图层,因此当调用手势处理程序时,非平凡部分将识别它们操纵的视图的哪个子图层。您可以使用locationInView:
进行平移手势来获取手势的触摸,使用locationOfTouch:inView:
进行捏合手势,其中视图参数是手势正在进行的视图,可以使用{{1 }}。识别出焦点层后,可以使用gesture.view
进行平移手势移动图层,并使用捏合手势的translationInView:
属性来转换图层。
虽然scale
对象是轻量级对象,但是当它们太多时,您可能会遇到问题。所以压力测试你的应用程序另一个障碍是图像通常是记忆猪,所以你可能无法获得很多涂鸦。