在OSx中的CALayer上画线

塞尔吉奥·安德烈奥蒂(Sergio Andreotti)

我想知道您是否可以帮助我在图层上绘画。

情况是这个

我正在这种屏幕上编程http://multitouch.com,同时进行12次触摸。在我正在开发的应用程序中,我可以管理多个图像。我可以同时旋转,缩放所有图像(在屏幕上最多可触摸12次!)。为此,我仅使用表演图层。每个图像都由一个CALayer表示,然后创建我的CALayer并将图像设置为其“内容”。层次结构是这样。

我只有一个NSView。

  • NSView“容器视图”
  • CALayer“ Images_Layer”作为“ Container_View”层的子层(它们具有相同的框架)
  • CALayer“ Img_1_Layer”,CALayer“ Img_2_Layer”,CALayer“ Img_3_Layer”等作为“ Images_Layer”的子层

正如我之前告诉您的那样,我可以旋转,缩放和移动我的图像。

双击单个图像,我锁定了整个屏幕,我仍然可以旋转和移动图像,但只能用两个手指。

现在,我希望该用户可以用一根手指在该图像上绘制。

主要问题是我没有图形方面的经验,互联网上的所有示例都是关于在视图上绘制线条。

问题是如何用手指在CALayer上进行绘制。我只有CALayer,我没有NSView

提前很多,塞尔吉奥


嗨,Mazyod,提供图片的CALayer类非常大。

请尝试了解这种情况

MainWindow自然地成为根

NSViewController称为MainViewController,以自定义NSView作为根视图-此视图称为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等

塞尔吉奥·安德烈奥蒂(Sergio Andreotti)

好的,我找到了。

  • 设置图层的委托
  • 在委托中重写此方法
  • 需要时调用图层setNeedDisplay方法

- (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];

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章