我已经多次遇到过这个问题而且无法找到解决方案......
我们的大多数应用程序仅在横向模式下运行,而我现在正在处理的应用程序(以及我之前处理过的许多应用程序)显示以下行为 - 首次启动时,应用程序正确显示横向显示,但无法按下屏幕右侧的任何按钮。该应用程序的行为就好像它只识别屏幕部分的触摸,如果应用程序处于纵向模式,则可以看到触摸,忽略屏幕右侧的任何触摸。如果我点击另一个viewController然后回到有问题的viewController,它会对屏幕上的所有触摸做出正确的反应。只有在第一次启动时,应用程序才会认为它在Portrait中运行并且无法识别768x1024区域(或1536x2048或320x480或640x960)右侧的触摸
所以我看到的视觉区域为1024x768,但只能点击屏幕前768个像素中的按钮(最右边的256个像素是不可访问的)
我尝试过的一种解决方法(成功有限 - 它之前有效,但并不总是有效,现在不能正常工作)已将这些行包含在rootViewController中的多个位置,例如AppDelegate.m。 m,以及具有上述问题的特定viewController.m:
self.view.frame = CGRectMake(0.0, 0.0, 1024.0, 768.0);
//I've also tried:
CGRect landFrame = self.view.frame;
landFrame.size.width = self.view.frame.size.height;
landFrame.size.height = self.view.frame.size.width;
self.view.frame = landFrame;
任何想法?
.plist值包括:
初始界面方向 - 横向(右主页按钮)
支持的界面方向:
我在rootViewController和特定的viewController中有这个代码:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (UIInterfaceOrientationIsLandscape(interfaceOrientation));
//I've also tried:
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
答案 0 :(得分:0)
这是我发现的最有用的东西:
在app delegate didFinishLaunchingWithOptions:
更改[window addSubview:navigationController.view];
到[window setRootViewController:navigationController];
并在Root ViewController中更改
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
为:
返回YES;
}
并在.plist文件中设置支持的接口方向