【发布时间】:2010-12-31 10:11:35
【问题描述】:
我不想在 iphone sdk 中使用任何正常的触摸事件。
当用户触摸屏幕时,我想找到他触摸的位置以及他触摸的所有像素。有没有办法在 iphone 中做到这一点?可能正在使用低级 SDK。
我希望它可以用于某些事情,例如在 iPhone 上使用手指的绘图应用程序。
【问题讨论】:
标签: iphone multi-touch
我不想在 iphone sdk 中使用任何正常的触摸事件。
当用户触摸屏幕时,我想找到他触摸的位置以及他触摸的所有像素。有没有办法在 iphone 中做到这一点?可能正在使用低级 SDK。
我希望它可以用于某些事情,例如在 iPhone 上使用手指的绘图应用程序。
【问题讨论】:
标签: iphone multi-touch
没有低级 API。 IIRC,触摸对象中的数据实际上是由硬件返回的。换句话说,这就是软件可以获得的所有数据。
我在很久以前做过一些触摸 UI 实验,我可以告诉你,在软件中处理现实世界的触摸比你乍一看要复杂得多。这不像跟踪鼠标。手指实际上是一个非常钝且不精确的指向工具,在美孚屏幕的规模上。手指大小、接触压力、接触面积、接触角和接触一致性有很大的变化。需要大量处理才能将这种生硬的不精确性转化为 API 可以轻松使用的单个点或点集合。
即使您找到从硬件中提取更多数据的方法,我也不会尝试重新发明轮子。如果没有别的,(戴上界面纳粹帽子)如果您的触摸界面与其他应用程序的行为不同,那么用户在必须来回切换时会感到困惑。
【讨论】:
触摸是一种相当不精确的手势,因此实际上不可能获得一个包含的所有像素。但是,您可以获得触摸的粗略“中心”,并为一组“触摸像素”推断出围绕该区域的区域。无需使用低级 SDK,只需覆盖 UIView 上的 -touchesBegan:withEvent: 即可。
【讨论】: