7

私のアプリは、3 つの子 vc を持つ UITabBarController ベースのアプリです。ステータス バーがビュー コントローラーと重なっています。SOで見つけたすべてを試しました:

  1. これをAppDelegateに追加しようとしました:

    //ステータス バーのスペースを確保するために下方にオフセットします self.window.bounds = CGRectMake(0, -20, self.window.frame.size.width, self.window.frame.size.height);

UITabBarController 全体を 20 下に移動したため、機能しました。

だから私は、各タブの UIViewControllers に効果を適用したいだけだと思っています。

  1. そこで、viewDidLoad に同様のコードを追加して、その後 setNeedsDisplay を呼び出してみました。

    self.view.bounds = CGRectMake(0, -20, self.view.frame.size.width, self.view.frame.size.height);

しかし、これはまったく効果がなく、まだ重複しています。

  1. これをviewDidLoadに追加してみました

    self.edgesForExtendedLayout = UIRectEdgeNone;

また、Extend Edges Under Top Bars のチェックを外しましたが、それでもステータス バーに表示されます。また試しました:

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

しかし葉巻はありません。

  1. ALを使用しているため、デルタはありません。

  2. ステータスバーには開/閉時間が表示されるため、ステータスバーを非表示にしたくないので、ユーザーは時間を確認できると便利です。

ビューを必要とする各ビューコントローラーでビューを少し下に移動することが最良のオプションだと考えていますが、なぜ私のコードが #2 で機能しなかったのでしょうか?

階層

(ところで:コード形式が機能せず、番号付けがオフになっている理由がわかりません。編集しようとしても、編集ビューでは正常に機能しているようですが、プレビューまたはライブビューでは機能していないようです)

4

2 に答える 2

1

重複を避けるための iOS 7 および xcode 5 の場合

で使用

viewDidLoad メソッド

self.edgesForExtendedLayout = UIRectEdgeNone;
self.automaticallyAdjustsScrollViewInsets = NO;
于 2014-02-11T15:03:55.687 に答える
0

さて、私はあなたと同じ問題を抱えています。何度も動かして直しました。ルビーモーションを使用しています:

@window.bounds = CGRectMake(0, -20, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height - 20)
@window.frame = CGRectMake(0, 0, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height)
....
tabBarController.view.bounds = CGRectMake(0, 20, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height - 20)

最後までどうなったか教えてください。

更新: スクリーンショットを添付:ここに画像の説明を入力

于 2013-10-05T19:18:31.300 に答える