私は何度もこの問題を抱えていて、それに対する解決策を見つけることができません...
ほとんどのアプリはランドスケープモードでのみ実行され、現在作業中のアプリ(および過去に作業した多くのアプリ)は次の動作を示しています-最初の起動時に、アプリはランドスケープで正しく表示されますが、画面右側のボタンは押せません。アプリは、画面の右側のタッチを無視して、アプリがポートレートモードの場合に表示される画面のセクションのタッチのみを認識するように動作します。別のviewControllerをクリックしてから、問題のあるviewControllerに戻ると、画面上のすべてのタッチに適切に反応します。最初の起動時にのみ、アプリはPortraitで実行されていると見なし、768x1024領域(または1536x2048または320x480または640x960)の右側のタッチを認識できません。
したがって、1024x768の視覚野が表示されていますが、画面の最初の768ピクセルのボタンしかクリックできません(右端の256ピクセルにはアクセスできません)。
私が試した回避策(成功は限られていますが、以前は機能していましたが、常に機能するとは限らず、現在は機能していません)、AppDelegate.m、rootViewController.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の値は次のとおりです。
初期インターフェースの向き-横向き(右のホームボタン)
サポートされているインターフェイスの向き:
- アイテム0-風景(右のホームボタン)
- アイテム1-風景(左のホームボタン)
私はrootViewControllerと特定のviewControllerにこのコードを持っています:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (UIInterfaceOrientationIsLandscape(interfaceOrientation));
//I've also tried:
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}