1

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

代码:

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

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

句柄在视图类中,它的工作原理相同,是我将 nil 而不是 self 传递给 locationInView。我还尝试循环所有的触摸,只有一个总是 x 为零。

那么我在这里做错了什么?

4

2 回答 2

2

您使用 NSLog(@"%d, %d", point.x, point.y); 的任何机会 打印出点值?这听起来有点像 float -> int 转换错误。我已经使用 locationInView: 很多,而且我从来没有遇到过这样的问题。

您也可以尝试检查 [self frame] 以确保它不为零。

于 2009-06-20T18:35:06.230 回答
0

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

于 2011-04-24T07:28:59.347 回答