iPad touch仅在320x480区域内检测到

时间:2010-04-16 14:39:34

标签: iphone objective-c cocoa-touch uikit ipad

我正在升级iPhone应用程序,到目前为止一切进展顺利(设法调整大多数表单的屏幕显示)。但是,我无法解决一个问题 - 仅在旧的320x480区域中检测到触摸。任何想法我该如何解决?

由于

编辑:以下是获取超级视图边界的代码执行时的结果:

CGFloat wdth = self.view.superview.bounds.size.width;
NSLog(@"%d", wdth);
CGFloat hgth = self.view.superview.bounds.size.height;
NSLog(@"%d", hgth);

结果:

2010-04-16 14:25:36.268 xxx[14871:207] 0
2010-04-16 14:25:36.269 xxx[14871:207] 1073741824

(%f)的结果:

2010-04-16 14:37:26.048 xxx[15053:207] -1.998374
2010-04-16 14:37:26.049 xxx[15053:207] 0.000000

(%g)的结果:

2010-04-16 14:37:41.113 xxx[15084:207] -1.99837
2010-04-16 14:37:41.115 xxx[15084:207] 9.48221e-38

5 个答案:

答案 0 :(得分:4)

http://iphonedevelopment.blogspot.com/2010/04/converting-iphone-apps-to-universal.html

在你AppDelegate:

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

// stupid Apple...
CGRect rect = [[UIScreen mainScreen] bounds];
[window setFrame:rect]; 

// now, display your app
[window addSubview:rootController.view];
[window makeKeyAndVisible];
}

答案 1 :(得分:2)

在界面构建器中,确保选中mainwindow-iPad“启动时全屏”窗口属性。

答案 2 :(得分:1)

当容器视图设置得太小时,我看到了类似的行为。子视图显示正常但触摸不会触发,因为触摸发生在超视图之外。

答案 3 :(得分:0)

真正的问题是,在MainWindow-iPad.xib文件中,Window对象的大小为320 x 480.正如ayman2010所提到的那样,设置“启动时全屏”可以解决这个问题。

为什么苹果会创建一个如此小的iPad窗口!!! ???

答案 4 :(得分:0)

您也可以在Interface Builder中打开(自动创建的)MainWindow-iPad.xib,选择文件/创建iPad版本,关闭MainWindow-iPad.xib并保存未命名的新XIB(具有正确的大小)旧的。

BurninLeo