【问题标题】:Why is this screen size range wrong?为什么这个屏幕尺寸范围是错误的?
【发布时间】:2012-10-23 21:16:36
【问题描述】:

我试图解释一些事情,所以我创建了一个测试项目。我创建了一个单视图应用程序,仅设置纵向(在项目摘要中)并隐藏状态栏(在 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 方法的视图的边界字段?
  • 是的,我做到了。这个视图的边界是 [320, 480]
  • 起源是什么?对于边界和框架
  • 此视图的框架为 (0,0,320,480),边界为 (0,0,320,480)
  • 你用的是哪个手势识别器?

标签: objective-c ios cocoa-touch


【解决方案1】:

您需要将rootViewController 的视图传递给方法locationInView。此方法表示的坐标是相对于您正在传递的视图的。

【讨论】:

  • Xcode自动生成单视图工程模板,所以这个ViewController就是RootViewController。
猜你喜欢
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-13
相关资源
最近更新 更多