Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 涂鸦。。。开放式总账?_Ios_Graphics_Opengl Es - Fatal编程技术网

Ios 涂鸦。。。开放式总账?

Ios 涂鸦。。。开放式总账?,ios,graphics,opengl-es,Ios,Graphics,Opengl Es,我正在制作一个应用程序,其中一个功能是能够在页面上放置预先制作的涂鸦,他们将能够放大和缩小涂鸦,并将它们放在他们想要的地方。这一切都是为了iPad。我是否需要为此使用OpenGL,或者是否有更好/更简单的方法?(iOS编程新手)您应该能够使用CALayers实现这一点。您需要添加QuartzCore框架才能使其工作。我们的想法是将每个涂鸦都表示为一个CALayer。如果您的涂鸦是图像,则可以使用contents属性将涂鸦指定给图层。您需要指定一个cgimagerf对象,您可以使用UIImage对

我正在制作一个应用程序,其中一个功能是能够在页面上放置预先制作的涂鸦,他们将能够放大和缩小涂鸦,并将它们放在他们想要的地方。这一切都是为了iPad。我是否需要为此使用OpenGL,或者是否有更好/更简单的方法?(iOS编程新手)

您应该能够使用
CALayer
s实现这一点。您需要添加
QuartzCore
框架才能使其工作。我们的想法是将每个涂鸦都表示为一个
CALayer
。如果您的涂鸦是图像,则可以使用
contents
属性将涂鸦指定给图层。您需要指定一个
cgimagerf
对象,您可以使用
UIImage
对象的
CGImage
属性轻松检索该对象

您将需要一个视图,它将成为您的绘图板。由于您希望能够移动和更改涂鸦的大小,因此必须附加一个用于移动图层的
uipangestrerecognizer
对象和一个
uipinchgestrerecognizer
以放大和缩小涂鸦。由于识别器只能附加到视图而不能附加到层,因此在调用手势处理程序时,最重要的部分将是识别它们正在操作视图的哪个子层。对于平移手势,您可以使用
locationInView:
;对于挤压手势,您可以使用
locationOfTouch:inView:
来触摸手势,视图参数是正在进行手势的视图,可以使用
手势。视图
。识别出焦点所在的层后,可以使用平移手势的
translationView:
移动层,并使用收缩手势的
scale
属性变换层

虽然
CALayer
对象是轻量级对象,但如果对象太多,您可能会遇到问题。所以,对你的应用程序进行压力测试。另一个障碍是,图像通常占用大量内存,因此您可能无法在其中获得大量涂鸦