Iphone 为什么ipad会返回无效的触摸位置?

Iphone 为什么ipad会返回无效的触摸位置?,iphone,objective-c,cocoa-touch,ipad,Iphone,Objective C,Cocoa Touch,Ipad,我注意到我们的应用程序中有一个崩溃,并将其追溯到一个有趣的问题 我的UIVIew是320x480。它覆盖touchesend:withEvent:并检查触摸位置以执行某些逻辑 有趣的是,在ipad(仅ipad)上,我们接收到X范围从0到320的触摸事件包容性。这是最重要的一点 一个320像素宽的视图如何能够容纳321个不同的触摸位置?这是已知的bug吗?有什么原因吗 要复制这一点,请在ipad上运行iphone应用程序(在兼容仿真器模式下),在视图中触按,然后将手指从一侧或另一侧滑出。您将收到x

我注意到我们的应用程序中有一个崩溃,并将其追溯到一个有趣的问题

我的UIVIew是320x480。它覆盖touchesend:withEvent:并检查触摸位置以执行某些逻辑

有趣的是,在ipad(仅ipad)上,我们接收到X范围从0到320的触摸事件包容性。这是最重要的一点

一个320像素宽的视图如何能够容纳321个不同的触摸位置?这是已知的bug吗?有什么原因吗


要复制这一点,请在ipad上运行iphone应用程序(在兼容仿真器模式下),在视图中触按,然后将手指从一侧或另一侧滑出。您将收到x值为0或320的触摸事件。你也可以为你做这件事。我无法在iphone上复制这一点。

电容式触摸屏上的触摸在物理上不是一个像素,更可能是一个模糊、嘈杂的斑点,只有可能的位置和直径。因此,这可能是模拟测量和事件处理程序之间的一些后处理调整的结果


或者这也可能只是一个bug。继续向苹果公司报告。

电容式触摸屏上的触摸在物理上不是一个像素,更可能是一个模糊的、嘈杂的斑点,只有可能的位置和直径。因此,这可能是模拟测量和事件处理程序之间的一些后处理调整的结果


或者这也可能只是一个bug。继续向苹果报告。

我是说,是的,我知道物理硬件必须收集一组抽象的刺激,并以某种方式将其解释为像素位置。但是,当这些细节到达我们所关注的抽象层时,它们应该早已消失。除非映射定义得很好,“触摸”是没有意义的。是的,你是对的,我会报告它,但我只是停止向苹果报告东西,因为他们只是默认要求你为他们编写一个样本应用程序,而不管出现什么问题。但愿我能有那么一段时间。我的意思是,是的,我理解物理硬件必须收集一组抽象的刺激,并以某种方式将其解释为像素位置。但是,当这些细节到达我们所关注的抽象层时,它们应该早已消失。除非映射定义得很好,“触摸”是没有意义的。是的,你是对的,我会报告它,但我只是停止向苹果报告东西,因为他们只是默认要求你为他们编写一个样本应用程序,而不管出现什么问题。但愿我能有那么一段时间。像素,你真的是指点,对吗?它们实际上是面积单位。最左边的一个从0到1。下一个从1到2。第320个从319到320。0是最左侧点的左边缘。320是最右侧点的右边缘。我相信触摸位置的记录精度比点甚至像素的分辨率要高。不,是指像素。我不认为iPad和iPhone之间的逻辑应该有所不同。关于iPad和iPhone之间的区别,你有一个观点。我只能相信你的话,这是有区别的,因为我没有访问iPhone。我刚刚尝试了你的场景,我得到了iPad上0.0到320.0之间的点值(不是像素值——我想你需要重新思考一下区别是什么——位置以点为单位,而不是像素)。有趣的是,在iPhone模拟器中,我得到了普通iPhone的值在1.0到319.0之间,3.5英寸和4英寸版本的值在0.5到319.5之间。但我认为模拟器识别边缘是出于自己的目的(或者可能是OSX),因此不能准确反映实际iPhone的行为。普通的iPhone sim卡。有设备的图像,其他人没有。像素的东西与问题无关。我只是在一个地方说的,而且很准确——我在两台设备上看到的视图都是320像素宽。至于你在模拟器上看到了什么;这个问题已经提出两年多了,很可能行为已经改变了。我认为如果有人遇到这个bug,它值得留作记录,但我不希望在新的iOS版本中重现它。像素,你真的是指点,对吗?它们实际上是面积单位。最左边的一个从0到1。下一个从1到2。第320个从319到320。0是最左侧点的左边缘。320是最右侧点的右边缘。我相信触摸位置的记录精度比点甚至像素的分辨率要高。不,是指像素。我不认为iPad和iPhone之间的逻辑应该有所不同。关于iPad和iPhone之间的区别,你有一个观点。我只能相信你的话,这是有区别的,因为我没有访问iPhone。我刚刚尝试了你的场景,我得到了iPad上0.0到320.0之间的点值(不是像素值——我想你需要重新思考一下区别是什么——位置以点为单位,而不是像素)。有趣的是,在iPhone模拟器中,我得到了普通iPhone的值在1.0到319.0之间,3.5英寸和4英寸版本的值在0.5到319.5之间。但我认为模拟器识别边缘是出于自己的目的(或者可能是OSX),因此不能准确反映实际iPhone的行为。普通的iPhone sim卡。有设备的图像,其他人没有。像素的东西与问题无关。我只是在一个地方说的,而且很准确——我在两台设备上看到的视图都是320像素宽。至于你在模拟器上看到了什么;这个问题已经提出两年多了,很可能行为已经改变了。我认为这是值得留下的记录,以防有人遇到错误,但我不希望在新的iOS版本中复制它。