通过移动其他视图触发iOS触摸事件
以下是我正在尝试实现的场景: 我已经有了一个视图,可以让用户通过直接触摸视图内部来绘制涂鸦(就像涂鸦画布一样)。此视图实现了通过移动其他视图触发iOS触摸事件,ios,objective-c,quartz-graphics,Ios,Objective C,Quartz Graphics,以下是我正在尝试实现的场景: 我已经有了一个视图,可以让用户通过直接触摸视图内部来绘制涂鸦(就像涂鸦画布一样)。此视图实现了触摸开始、触摸移动和触摸结束处理程序,以从触摸事件参数绘制线条 现在,我希望用户能够在此画布视图上拖动和移动另一个UIView,并且仍然可以像直接触摸一样绘制线条。例如,用户可以在画布视图上拖动笔图像视图以绘制笔样式线 在这种情况下,如何将画笔图像视图的移动转移到画布上,使其能够识别?还有一个问题:如果我想让这个画布视图只识别其他视图的移动,而不是直接触摸,我应该怎么做 (
触摸开始
、触摸移动
和触摸结束
处理程序,以从触摸事件参数绘制线条
现在,我希望用户能够在此画布视图上拖动和移动另一个UIView,并且仍然可以像直接触摸一样绘制线条。例如,用户可以在画布视图上拖动笔图像视图以绘制笔样式线
在这种情况下,如何将画笔图像视图的移动转移到画布上,使其能够识别?还有一个问题:如果我想让这个画布视图只识别其他视图的移动,而不是直接触摸,我应该怎么做
(很抱歉,这个问题有点太笼统了,我只是想得到一些提示)。。。谢谢 看待这个问题的更好方法是 如何将画布上的运动转移到笔的位置 图像视图 那很容易。您已经拥有了跟踪画布中移动的所有代码(touchesBegind、touchesMoved、toucheseEnd),因此只需更改笔视图的
center
属性即可跟踪画布中的移动。(显然,您需要应用较小的X和Y偏移,以将画笔视图的中心放置在正确的位置)
您需要注意的唯一不明显的细节是笔视图必须将userInteractionEnabled
设置为NO
。这样,笔视图就不会干扰到达画布视图的触摸
请注意,UIImageView
默认情况下禁用了用户交互,因此如果笔视图是UIImageView
,则无需执行任何操作。但是,如果使用通用的UIView
显示画笔,则需要在属性检查器下禁用情节提要中的用户交互,或在代码中禁用它,例如在viewDidLoad
中为什么拖动图像?它是否有助于用户选择样式?这肯定没用performance@Wain这是项目要求。。。很抱歉,我无法解释更多,但这符合应用程序的特定场景。