【问题标题】:Writing with digital pen on ipad/iphone by keeping hand on screen通过将手放在屏幕上,在 ipad/iphone 上使用数字笔书写
【发布时间】:2012-06-18 10:56:15
【问题描述】:

我正在 iphone 和 ipad 上开发一款带有触控笔的绘图应用程序。到目前为止,我已经实现了基本绘图并使用数字笔进行了测试,它工作正常,但是我有一个问题,在 iphone/ipad 上绘图时,如果我的手指在我用笔绘图之前触摸屏幕,笔将无法工作,所以我想要实现的是,我希望能够用笔书写,即使我的手指正在触摸 ipad 屏幕。

问候 兰吉特

【问题讨论】:

  • 朋友们好,有谁能帮帮我,等待回复

标签: ios ios5 uikit core-graphics quartz-2d


【解决方案1】:

没有办法区分手指和触控笔,因为触控笔应该模拟手指的触摸。您要么必须使所有触摸都绘制(包括屏幕上的手),要么使其只有触摸屏幕的第一个“手指”才能绘制(这意味着您必须先将手写笔放在屏幕上,然后再将手放在屏幕上)可以触摸它)。

@iLive 提到您应该实现的那些委托方法是正确的,但我假设您已经在使用这些方法。

更新:

跟踪特定的触摸就像在 touchesBegan 期间将实例的地址添加到数组中一样简单。将它们附加到 CFMutableArrayRef。然后,在touchesMoved方法中,就可以简单的按顺序获取到触摸的索引了。

【讨论】:

【解决方案2】:

最有可能的答案是您可以收到的触摸次数。
显然,如果不启用多点触控,您将被卡在一次只能接收一个触摸!
因此,如果您的手先触摸屏幕,则不会接收到数字笔的其他触摸。

首先启用multi-touch 功能。
这些是您必须实施的方法:

  • -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
  • -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
  • -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
  • -(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event

查看 Apple 的链接:http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MultitouchEvents/MultitouchEvents.html 了解更多信息!

希望这有帮助!

【讨论】:

【解决方案3】:

加法 您可以从下边缘(用户可配置高度)至少制作一层(不接受触摸),以便至少您的手掌可以放在 ipad 屏幕表面上,从而降低不必要的触摸的可能性并让绘图更多稳定。

【讨论】:

  • 你的意思是说只有上层可以接受触摸,底层不接受触摸,两者都是分开的。对吗?
  • 没错。它将作为掌托区域。它通过一个小按钮滑入到位,如果覆盖区域可见,则可以对其进行调整。使其半透明,以便下面的图层可见。
猜你喜欢
  • 2013-10-11
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
  • 2021-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多