我想知道你是否可以帮助我在图层上进行绘画。
情况就是这个
我在这种屏幕http://multitouch.com上进行编程,同时进行了12次触摸。 在我正在开发的应用程序中,我可以管理多个图像。我可以旋转,同时缩放所有图像的移动(屏幕上最多12次触摸!) 为了实现这一点,我只使用层来表演。 每个图像都由CALayer表示,然后我创建我的CALayer并将图像设置为其“内容”。层次结构就是这个。
我只有一个NSView。
正如我之前告诉过你的那样,我可以旋转,缩放和移动我的图像。
双击单张图片,我锁定整个屏幕,我仍然可以旋转并移动图像,但只能用两根手指。
现在我希望用户可以用1个手指在这张图片上绘图。
主要问题是我没有使用图形的经验,互联网上的所有示例都是关于绘制视线的。
问题是如何用手指在CALayer上画画。我只有CALayer,我不能拥有NSView
提前许多人,塞尔吉奥Hi Mazyod,提供Image的CALayer类非常大。
请尝试了解此背景
MainWindow自然是
NSViewController以自定义NSView作为根视图调用MainViewController - 此视图称为Container,它被设置为MainWindow的contentView
CALayer调用Images_Layer - 它是一个添加为Container层的SubLayer的图层
CALayer调用Img_Layer - 它是一个添加为Images_Layer的SubLayer的图层(我为每个图像添加了一个,自然地设置为内容,然后是CGImageRef)
当我点击图像(ImgLayer)时,会照常激发3种方法:
onTouchPointDown - 使用x,y等 onTouchPointMove - 使用x,y等 onTouchPointUp - 使用x,y等
答案 0 :(得分:1)
好的,我找到了。
-
(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
{
NSGraphicsContext *gc = [NSGraphicsContext graphicsContextWithGraphicsPort:ctx flipped:NO];
[NSGraphicsContext saveGraphicsState];
[NSGraphicsContext setCurrentContext:gc];
// draw points with bezier path
[NSGraphicsContext restoreGraphicsState];
}