4

さまざまな iOS バージョンで UI がどのように見えるかを添付しました。

これは以下の私のコードです:

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:contactsViewController];
[self.viewController presentModalViewController:navController animated:YES];

iOS6

ここに画像の説明を入力

iOS7

ここに画像の説明を入力

最初の問題は、iOS 6 のステータス バーです。ステータス バーがありません。2 番目の問題は、2 つのビューをオーバードローすることです。それを解決する方法は?

4

3 に答える 3

4

サイズ変更可能な画像を使用したい場合があります。

[image resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0) resizingMode:UIImageResizingModeStretch];

または、AliSoftwareが提案したように、拡張レイアウト エッジを次のように設定します(がサポートUIRectEdgeNoneされているかどうかを確認してくださいedgesForExtendedLayout(iOS 6.x デバイスで実行されているこのプロパティを割り当てると、アプリがクラッシュします)。

if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) {
    self.edgesForExtendedLayout = UIRectEdgeNone;
}
于 2013-09-15T15:38:07.843 に答える
2

iOS6 と iOS7 のこれらすべての違いと、それに応じてコードを適応させる方法について説明している Apple の「UI Transition Guide」を読むことを強くお勧めします。

iOS7 でもビューを statusBar の下に置きたい場合の最も簡単な方法は、 を に設定することUIViewControllerです。self.edgesForExtendedLayout = UIRectEdgeNoneviewDidLoad

于 2013-09-15T15:36:48.793 に答える
1

このメソッドを記述することで、提示されたビューコントローラーのステータスバーを非表示にすることができます

- (BOOL)prefersStatusBarHidden {
    return YES;
}
于 2013-10-21T16:06:56.183 に答える