我正在开发一个应用程序,其功能之一是可以在页面上放置预制涂鸦,它们将具有放大和缩小涂鸦并将其放置在所需位置的功能。这一切都用于iPad。我需要为此使用开放式GL还是有更好/更简便的方法? (iOS编程新手)
最佳答案
您应该可以使用CALayer
来实现。您需要添加QuartzCore
框架才能正常工作。想法是将每个Doodle表现为单个CALayer
。如果涂鸦是图像,则可以使用contents
属性将涂鸦分配给图层。您将需要分配一个CGImageRef
对象,您可以使用CGImage
对象的UIImage
属性轻松检索该对象。
您将需要一个视图作为绘图板。由于您希望能够移动和更改Doodle的大小,因此必须附加UIPanGestureRecognizer
对象以移动图层,并附加UIPinchGestureRecognizer
来放大和缩小Doodle。由于识别器只能附加到视图而不能附加到图层,因此调用手势处理程序时的重要部分将确定它们正在操纵视图的哪个子层。您可以使用locationInView:
作为平移手势,而locationOfTouch:inView:
作为捏合手势来获取手势的触摸,其中view参数是正在执行手势的视图,可以使用gesture.view
对其进行检索。一旦确定了焦点所在的图层,就可以使用translationInView:
进行平移手势来移动该图层,并使用捏合手势的scale
属性来变换该图层。
尽管CALayer
对象是轻量级的对象,但是当它们太多时,您可能会遇到问题。因此,对您的应用程序进行压力测试。另一个障碍是图像通常是记忆猪,因此您可能无法获得很多涂鸦。
关于ios - 涂鸦…打开GL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6268082/