在为我的视图编写touchesBegan处理程序时,我遇到了这个有趣的错误。

代码:

...
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self];
...

问题是point.x始终为零,无论我在哪里“触摸” y是一个巨大的数字,在1070000000到1090000000之间波动。

句柄在视图类中,它的工作方式相同,我将nil而不是self传递给locationInView。我也试过循环遍历所有的触摸,并且只有一个x始终为零。

那我在这里做错了什么?

有帮助吗?

解决方案

你有可能使用NSLog(@“%d,%d”,point.x,point.y);打印出点值?听起来有点像漂浮物 - > int转换错误。我已经使用了locationInView:很多,而且我从来没有像这样的问题。

您也可以尝试检查[自我框架]以确保它非零。

其他提示

本是对的。问题是当您尝试使用 NSLog 中的%d 打印值时,因为 point.x point.y 是浮点值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top