3

我的应用程序只允许在横向方向,并且它以横向启动。因此,当 iPad 为横向时,左上角为 (0,0),所以一切正常。

但是,当我拿起“touchesBegan”时......它无法正常工作。只有当我像 iPad 右侧的三分之二那样轻按时,它才会触动。我知道它与方向有关,因为该应用程序实际上只是带有单个 UIView 的空白屏幕,没有别的。这很简单。没有其他可能的问题会导致这种情况。

具体来说,如果我在 touchesBegan 函数中打印出 x 位置,并且如果 iPad 用左侧的主页按钮按住,则宽度为 1024。而 1024-768 为 256。这正是它所在的 x 位置开始感觉到我的触摸。x=256 左边的任何东西都感觉不到触摸。

我该如何解决?

4

3 回答 3

2

检查 Struts 和 Springs 并确保任何应该接触的东西都覆盖了整个区域并锁定到 4 个侧面。

在此处输入图像描述

于 2012-02-13T00:31:27.587 回答
0

要以编程方式进行,

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
[self.view setFrame:CGRectMake(0.0f, 0.0f, appFrame.size.width, appFrame.size.height)];
返回是;
// 如果您只想支持横向模式,请使用下面的行
/*
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight);
*/
}

这会将视图设置为占据全屏。

于 2012-02-13T00:53:44.060 回答
-1

答案是,在定义UIWindow的时候,需要定义为

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

而不是严格的坐标。

于 2012-02-13T01:38:54.840 回答