0

iOS6 アプリの UI が iOS 7 のステータス バーと重なる問題があります。これを修正する方法に関する以前の投稿を読みましたが、結果が得られません。

View Controllerのメインビューにすべて含まれるいくつかのビューがあります:

ここに画像の説明を入力

ステータス バーのオーバーラップの問題に対する投稿された解決策では、Y 原点に 20 を追加し、デルタ Y に -20 の値を設定して補正することを提案しています。

最初の問題は、メインの高レベル ビューの IB で原点を設定できないことです。グレー表示されています。 ここに画像の説明を入力

代わりに、VC の viewDidLoad で、オリジンを手動で設定しようとしました。

- (void)viewDidLoad
{
   CGRect frame = self.view.frame;
   frame.origin.y = 20;
   self.view.frame = frame;

ただし、アプリを実行しても違いはありませんが、ステータスバーが重なっています。

他のすべてのビューはメイン ビューの子であるため、メイン ビューだけを変更すると、その 1 つだけを調整すると、他のすべてがそれに関連してシフトすると想定していました。

原点を変更した後、違いが見られないのはなぜですか?

4

1 に答える 1

0

これをviewDidLoadで提案されたソリューションと組み合わせて試してください:

if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) self.edgesForExtendedLayout = UIRectEdgeNone;

これがうまくいかない場合は、viewdidappear にフレームを設定することもできます。これがうまくいく場合は、頑張って賛成してください:)

于 2013-10-17T16:52:47.710 に答える