Objective c 为什么这个屏幕大小范围是错误的?

Objective c 为什么这个屏幕大小范围是错误的?,objective-c,ios,cocoa-touch,Objective C,Ios,Cocoa Touch,我试图解释一些事情,所以我创建了一个测试项目。我创建了一个单视图应用程序,只设置了纵向(在项目摘要中)并隐藏了状态栏(在ViewController.xib中) 在ViewController.m中,我编写了一个检测触摸点的小方法: - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { UITouch* touch = [touches anyObject]; CGPoint point = [tou

我试图解释一些事情,所以我创建了一个测试项目。我创建了一个单视图应用程序,只设置了纵向(在项目摘要中)并隐藏了状态栏(在ViewController.xib中)

ViewController.m
中,我编写了一个检测触摸点的小方法:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch* touch = [touches anyObject];
    CGPoint point = [touch locationInView:[self view]];
    NSLog(@"%@", NSStringFromCGPoint(point));
}
理论上,我现在应该有一个320宽480高的显示器

所以,如果我开始在宽度上滑动,我会在命令行中看到0…320范围内的值,这里我没有问题,实际上我的值在2,5范围内。。。317

因此,如果我开始在高度上滑动,我将在命令行中看到范围为0…480的值。但是,这里我有一个问题。实际上,这个范围是-5.5…469


我不明白为什么会这样?此范围非常奇怪。

您需要将
根视图控制器的视图传递给方法
locationInView
。此方法表示的坐标是相对于您要传递的视图的。

您是否检查了要传递到locationInView方法的视图的边界字段?是的,我检查了。这个视图的边界是[320480]原点是什么?对于该视图的边界和框架为(0,0320480),边界为(0,0320480),哪个手势识别器正在使用?Xcode自动生成单个视图项目模板,因此该ViewController为RootViewController。