16

Default-568h@2x.pngをプロジェクトに追加し、プロジェクト設定で設定しました。また、ビューとそのビューの要素の自動サイズ変更オプションを設定しました。これは、横向きのみのアプリケーションに最初にロードされますが、実行後に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 があります)。したがって、基本的に、ビューをフル解像度で表示するだけでしたが、ビュー上の要素の機能は、Retina 4 インチ シミュレーターで最初にアプリを起動したときに最初に表示された領域に限定されます。


[編集 #3: XIB ファイルの UIView のサイズを変更する]

XIB ファイルの UIView の実際のサイズを変更して、それらをすべて Regina 4 フルスクリーンにサイズ変更しようとしましたが、それでも同じです。


[編集 #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 全画面表示オプション]

@ user1702985が提案したように、このオプションの選択が解除されたため、このオプションをオンにしました。しかし運が悪い

アプリケーションを起動すると、1 つのビューが 2 秒間表示され、その上に 1 つの UIImageView が表示されます。Autosize プロパティを正しく設定すると、この UIView は iPhone 5 シミュレーターで全画面表示されます。しかし。その後、垂直UIScrollView、ヘッダーとフッターとしてのUIView、および1つのUIButtonを含む2番目のUIViewがあり、これらの要素のすべての自動サイズオプションも設定しますが、このUIViewはiPhone 4の解像度で表示されます. それは本当に奇妙に動作し、それが何であるかはまだわかりません。


[編集 #7: 設定されている自動サイズ変更オプション]

この自動サイズ変更オプションは、すべての UIView とその要素に対して設定されています。

ここに画像の説明を入力


[編集 #8: 起動時の全画面表示オプションの説明]

MainWindow.xib プロパティ。

ここに画像の説明を入力

4

11 に答える 11

21

これがお役に立てば幸いですが、フルスクリーンでタッチ効果が得られるかどうかはわかりません。そのため、アプリケーションのフルタッチを確認する必要があります。

ステップ 1: 画像に示されているナビゲーションから [プロジェクト] をクリックし、不足しているファイルをクリックします。

ステップ 2: 2 番目の画像で [追加] をクリックします。

プロジェクトを実行すると、iPhone 5 のフルスクリーンまたはシミュレーターでプロジェクトが実行されます。

ここに画像の説明を入力

于 2012-09-29T13:09:10.303 に答える
9

キー ウィンドウのサイズが適切であることを確認します。回避策は、適切なフレームを設定することです: [window setFrame:[[UIScreen mainScreen] bounds]].

更新:
ソース コードがないと、どこに問題があるのか​​を推測するのは困難です。iPhone4/iPhone5 のインターフェイスの向きをテストするための簡単なアプリ スタブを作成しました。新しい「シングル ビュー アプリケーション」を作成し、いくつかのサブビューをルート ビューに追加し、「デフォルト」イメージを追加しました。私は Xcode 4.3.2 で追加機能なしでそれを行い、Xcode 4.5.アプリは画面を適切なサイズに自動的に拡大します (両方のportrait/landscape向き)。

于 2012-09-24T08:12:38.287 に答える
5

画面の一部がユーザーの操作に応答しないという同じ問題がありました。MainWindow.xib で「起動時にフルスクリーン」オプションを選択すると、修正されました。

于 2012-09-27T10:28:24.653 に答える
4

何をしても、アプリを全画面表示できませんでした。

しかし、ファイル「Default-568@2x.png」をアプリに追加した後、すべてのxibがフルスクリーンで実行されます。XCodeで新しいアプリを作成し、作成された黒いpngをコピーすることで、これをすばやくテストできます。

于 2012-09-26T03:32:27.683 に答える
1

これを試しましたか?

iOSシミュレータ > ハードウェア > デバイス > iPhone(Retina 4インチ)

私はちょうど同じ問題に遭遇し、これが私が解決した方法です。

于 2012-11-18T18:11:05.263 に答える
0

シミュレーターでアプリを LongPress-ing して削除し、再実行します。

これは、4インチの網膜調整の後、私にとってはうまくいきます。IB でステッチアップした方法で、すべてが自動的にサイズ変更されました。

于 2012-09-28T02:43:37.363 に答える
0

メインのviewControllerをウィンドウにどのように追加していますか? ビューをサブビューとして追加するだけでは、iOS6 ではサポートされなくなりました。

これは、iPhone 5 の画面サイズでアプリを動作させることに関する私のブログの記事からの例外です。

window.rootViewController を使用して初期ビューを追加します

最初に、コードで初期ビューを作成する場合は、単にビューをサブビューとして追加する古い方法ではなく、window.rootViewController を使用して初期ビューをウィンドウに追加してください。これを行わないと、iOS 6 のアプリで自動回転がまったく機能しません。

次に例を示します。

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/make-apps-work-on-iphone-5-screen-size.htmlをご覧ください

于 2012-09-20T08:44:02.530 に答える
0

同じことが私にも起こっていました。ビデオのスプラッシュ スクリーンを作成しようとしていましたが、スプラッシュ スクリーンが表示される時間を制御できず、ビデオ全体を表示できなかったため、偽のスプラッシュ スクリーンを作成する必要がありました。最初に表示されてから削除されました。そのコントローラーのビューは、何を試してもフルスクリーンで表示されませんでした。結局、スプラッシュ画像がなかったので、それが起こっていることがわかりました.

解決策:スプラッシュ スクリーンをプロジェクトに追加すると (たとえそれが単なる黒い画像であっても)、全画面表示の問題が修正されるはずです。

于 2015-02-11T13:37:29.060 に答える