【发布时间】:2013-07-24 09:26:53
【问题描述】:
我想知道你是否可以帮助我在图层上绘画。
情况是这样的
我在这种屏幕上编程http://multitouch.com,12 次同时触摸。 在我正在开发的应用程序中,我可以管理多个图像。我可以同时旋转、缩放所有图像(屏幕上最多 12 次触摸!) 为此,我只使用图层进行表演。 每个图像都由一个 CALayer 表示,然后我创建我的 CALayer 并将图像设置为其“内容”。层次结构是这样的。
我只有一个 NSView。
- NSView "Container_View"
- CALayer“Images_Layer”作为“Container_View”层的子层(它们具有相同的框架)
- CALayer“Img_1_Layer”、CALayer“Img_2_Layer”、CALayer“Img_3_Layer”等作为“Images_Layer”的子层
正如我之前告诉你的,我可以旋转、缩放和移动我的图像。
双击单个图像,我锁定了整个屏幕,我仍然可以旋转和移动图像,但只能用两根手指。
现在我希望该用户可以用一根手指在此图像上绘图。
主要问题是我没有图形经验,互联网上的所有示例都是关于在视图上画线。
问题是如何用手指在 CALayer 上绘图。我只有 CALayer,我不能有 NSView
非常感谢,塞尔吉奥
您好 Mazyod,提供 Image 的 CALayer 类非常大。
请尝试理解此上下文
MainWindow 自然是 root
NSViewController 调用 MainViewController 自定义 NSView 作为根视图 - 这个视图被称为 Container 并且它被设置为 MainWindow 的 contentView
CALayer 称为 Images_Layer - 它是作为容器层的子层添加的层
CALayer 称为 Img_Layer - 它是作为 Images_Layer 的 SubLayer 添加的层(我为每个图像设置了一个,自然设置为内容,然后是 CGImageRef)
当我单击图像 (ImgLayer) 时,会像往常一样触发 3 个方法:
onTouchPointDown - 带有 x、y 等 onTouchPointMove - 使用 x、y 等 onTouchPointUp - 带有 x、y 等
【问题讨论】:
-
你说你的兴趣是在 OS X 上。那么你说的是用手指画一个图形还是一条线?点击图片?你说的对我来说意义不大。
-
对不起我的英语,我想解释一下我的应用程序是如何工作的。是的,我想用一根手指在包含图像作为其“内容”的 CALayer 上绘制。假设我有 3 种方法的 CustomLayerImage:TouchBegan TouchMove TouchEnd
-
我建议你展示一些你目前拥有的代码,这样我们就可以从那里开始了。仅供参考,在
CALayer上绘图与在视图上绘图完全相同,只有一个区别:您可以使用drawInContext:而不是使用drawRect:进行绘图 -
嗨 Mazyod,我编辑了我的问题,请阅读以上内容
-
场景是这样的,youtube.com/watch?v=l0-dWFZglfs 从 1.25 分钟开始,我可以做到完全一样。就我而言,所有图像都是CALayer。现在,想象一下,如果我双击单个图像,除该图像之外的所有屏幕都会被锁定。一个自定义栏显示在图像附近,用户可以在其中选择颜色并在图像上绘图。
标签: objective-c macos drawing calayer paint