1

我正在开发一个具有UITapGestureRecognizer. 我注意到当我在 iPad 上尝试时,无法识别水龙头。在我使用 1x/2x 按钮缩放应用程序后,水龙头开始工作。我究竟做错了什么?

我已将其缩小到一个非常小的样本。我从 XCode“单一视图应用程序”开始,以下是viewDidLoad

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    info = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 200, 20)];
    [self.view addSubview:info];

    tapper = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
    [self.view addGestureRecognizer:tapper];
}

到目前为止,这是我所知道的:

  • 适用于 iPhone 大小的屏幕。
  • 在 iPad 上纵向工作。
  • 在 iPad 上横向失败,直到视图以 1x/2x 缩放,然后它开始工作(并在缩放回原始缩放级别后继续工作)。
  • 与 iPad 模拟器表现出相同的行为。

完整的代码位于GitHub 存储库中,因此您可以查看整个内容或尝试一下。XCode 4.5.1、iPad 视网膜、iOS 6.0.1。

4

1 回答 1

1

我发现如果我删除应用程序 plist 中“支持的界面方向”下的所有条目,这个问题就会消失。或者,如果您在目标设置的摘要屏幕上选中“状态栏”设置的“应用程序启动期间隐藏”选项,这也可以修复它:

在应用程序启动期间隐藏

没有合乎逻辑的理由我可以看到这些选项中的任何一个都应该修复这个错误,但它们都可以。

显然,如果您确实使用“支持的界面方向”选项,在 iOS 6 中,您仍然可以通过supportedInterfaceOrientationsshouldAutorotateToInterfaceOrientation:在 iOS 5 中)以编程方式控制允许的方向。

于 2012-11-26T04:05:20.607 回答