プロジェクトに[email protected]を追加し、プロジェクト設定で設定しました。また、ビューとそのビューの要素に自動サイズ変更オプションを設定しました。最初は横向きのみのアプリケーションにロードしましたが、iOS 6.0 Simulator Retina 4インチでアプリケーションを実行した後、アプリケーションが左端まで移動し、右側に黒いピクセル領域が残っているのがわかります。
IOS 6.0 Simulator Retina 4インチでアプリケーションが「フルスクリーン」で実行されることを確認するには、これらのほかに何をすべきでしょうか。
[編集#1:AppDelegate]
また、AppDelegate.mを次のように編集しました。
viewControllerMain = [[ViewControllerMain alloc] init];
//[window addSubview:viewControllerMain.view];
window.rootViewController = viewControllerMain;
[編集#2:フレームの編集]
フルスクリーンモードを実現できましたが、正常に機能していません。私は私の見解でこれを行います:
CGRect frame = CGRectMake([UIScreen mainScreen].bounds.Origin.x, [UIScreen mainScreen].bounds.Origin.y, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width);
self.frame = frame;
これは私のビューを全画面表示にするだけですが、最初に述べた右側の黒い領域はデッドおよびユーザーの操作はできませんその領域にあります(UIButtonがあります)タッチしても反応しません)。つまり、基本的には、ビューをフル解像度で表示するだけでしたが、ビュー上の要素の機能は、Retina4インチシミュレーターで最初にアプリを起動したときにアプリが最初に表示した領域に限定されています。
[編集#3:XIBファイル内のUIViewのサイズの変更]
XIBファイルのUIViewの実際のサイズを変更して、すべてをRegina 4 Full Screenにサイズ変更しようとしましたが、それでも同じことです。
[編集#4:ウィンドウオブジェクトのサイズの変更]
AppDelegate.mでウィンドウオブジェクトのサイズを変更しようとしましたが、うまくいきませんでした。 AppDelegate.mは次のようになります。
application.statusBarOrientation = UIInterfaceOrientationLandscapeRight;
mainViewController = [[MainViewController alloc] init];
window.rootViewController = mainViewController;
// Override point for customization after application launch
[window setFrame:[UIScreen mainScreen].bounds];
[window makeKeyAndVisible];
[編集#5: "ソリューション"]
これまでのところ、次のことを行いました。IBでは、iPhone 5の解像度サイズで新しいUIViewを作成し、iPhone 5より前の解像度で作成された同等のUIViewを処理する同じ所有者クラスを割り当て、コードでこれらのUIViewの一部をロードする必要があります[チェックします[ UIScreen mainScreen] .bordersを使用して、現在アプリケーションを実行しているデバイスを確認します。このようにして、私は物事をうまく動かすことができました。
しかし、それでも、主な質問は残っていました-私が言及したすべてのことを行った後、なぜすべてのUIViewが自動的に新しい解像度に拡張されなかったのですか?
とにかく、報奨金は5〜6日間有効です。誰かがこの問題を解決することができれば、私は非常に感謝します。そうでない場合は、@ onegrayに報奨金を与えます。これは、最初は気にかけなかったものであり、現在の実装では非常に重要です。
宜しくお願いします。
[編集#6:起動時のMainWindow.xibフルスクリーンオプション]
@ ser1702985が提案したように、このオプションは選択解除されたので[〜#〜] on [〜#〜]をオンにしました。しかし運がない。
アプリケーションを起動すると、1つのUIImageViewを含む1つのビューが2秒間表示されます。自動サイズのプロパティを正しく設定すると、このUIViewはiPhone5シミュレーターで全画面表示されます。だが。その後、垂直UIScrollView、ヘッダーとフッターとしてのUIView、および1つのUIButtonを含む2番目のUIViewがあり、これらの要素のすべての自動サイズ設定オプションも設定しましたが、このUIViewはiPhone4解像度で表示されます。それは本当に奇妙に振る舞い、私はまだそれが何であるかわかりません。
[編集#7:設定されている自動サイズ変更オプション]
この自動サイズ変更オプションは、すべてのUIViewとその要素に設定されています。
[編集#8:起動時の全画面表示オプションの説明]
MainWindow.xibプロパティ。
キーウィンドウのサイズが適切であることを確認してください。回避策は、適切なフレームを設定することです:[window setFrame:[[UIScreen mainScreen] bounds]]
。
更新:
ソースコードがないと、どこに問題があるのか推測するのは困難です。私は iPhone4/iPhone5のインターフェースの向きをテストするためのシンプルなアプリスタブ を作成しました。新しい「シングルビューアプリケーション」を作成し、ルートビューにいくつかのサブビューを追加し、「デフォルト」の画像を追加しました。 Xcode 4.3.2で、Xcode 4.5.
の追加機能を使用せずに実行しました。アプリは、画面を適切なサイズに自動的に拡大します(portrait/landscape
の両方の方向)。
これがお役に立てば幸いですただし、フルスクリーンでタッチ効果が得られるかどうかはわかりませんしたがって、アプリケーションのフルタッチを確認する必要があります。
ステップ1:画像に示されているナビゲーションからプロジェクトをクリックし、不足しているファイルをクリックします
ステップ2:2番目の画像で[追加]をクリックします
プロジェクトを実行すると、プロジェクトはiPhone5のフルスクリーンまたはシミュレーターで実行されます。
画面の一部がユーザーの操作に応答しないという同じ問題がありました。 MainWindow.xibで「起動時にフルスクリーン」オプションを選択すると、修正されました。
何をしても、アプリを全画面表示できませんでした。
しかし、ファイル「[email protected]」をアプリに追加した後、すべてのxibがフルスクリーンで実行されます。XCodeで新しいアプリを作成し、作成された黒いpngをコピーすることで、これをすばやくテストできます。
XCode 6.1を使用する場合は、次のソリューションを試してください(完全なイメージセットのないプロジェクトの場合)。
これを試しましたか?
iOSシミュレーター>ハードウェア>デバイス> iPhone(Retina 4インチ)
私はちょうど同じ問題に遭遇し、これが私が解決した方法です。
LongPressでシミュレーターのアプリを削除し、再実行します。
これは、4インチの網膜調整後、私にとってはうまくいきます。 IBでステッチアップする方法ですべてが自動サイズ変更されました。
同じことが私にも起こっていました。ビデオスプラッシュ画面を作成しようとしましたが、スプラッシュ画面が表示される時間を制御できず、ビデオ全体を表示できなかったため、偽のスプラッシュ画面を作成する必要がありました。これは単なるコントローラーでした。最初に表示され、次に削除されました。そのコントローラーのビューは、何を試してもフルスクリーンとして表示されませんでした。結局、スプラッシュ画像がなかったので、それが起こっていることがわかりました。
解決策:スプラッシュ画面をプロジェクトに追加すると(黒い画像であっても)、全画面の問題を修正する必要があります。
IOS8でテストしたときにiOS6日間で作成されたアプリで、同様の問題が発生しました。
私たちの修正は、MainWindow.xibに「Hidden」フラグを設定することでした。
これが私たちが修正について見つけた方法です ここ 。
アプリケーションの起動画面を追加してください。
メインのviewControllerをウィンドウにどのように追加していますか?ビューをサブビューとして追加するだけでは、iOS6ではサポートされなくなりました。
これは、iPhone5の画面サイズでアプリを動作させることに関する私のブログの記事からの例外です。
window.rootViewControllerを使用して初期ビューを追加します
まず、コードで初期ビューを作成する場合は、単にビューをサブビューとして追加する古い方法ではなく、window.rootViewControllerを使用してウィンドウに初期ビューを追加してください。これを行わないと、iOS6のアプリでは自動回転がまったく機能しません。
次に例を示します。
navigationController = [[UINavigationController alloc] initWithRootViewController: myRootVC];
//[window addSubview:[navigationController view]]; Don't do this!
window.rootViewController = navigationController; // Do this instead!
詳細 http://pervasivecode.blogspot.co.uk/2012/09/making-apps-work-on-iphone-5-screen-size.html