3

ステータスバーの後ろの上部20pxに問題があります。具体的には、そこに何も配置できません。

UIを作成したとき、ストーリーボードアプローチを使用し、ステータスバーのスタイルを半透明の黒に設定しました。しかし、Xcodeでレイアウトを行うと、ビューの高さが460px(グレー表示)に固定されます。

助けてください。


友人から回答を得ました。彼がここに投稿するとすぐに、彼の解決策を正しい回答としてマークします。今のところここに解決策があります:

  1. Interface Builderで、View Controllerをフルスクリーンでフリーフォームサイズにするように設定します:http://cl.ly/0x1p1u3q3B1y3b3C3U2n
  2. 次に、ビューのサイズ設定で、高さを480pxに設定します:http://cl.ly/1p1b0e060p1Y37393D08
  3. Info.plistでステータスバーのスタイルが半透明の黒であることを確認します:http://cl.ly/153Y391S1b0G3J3z3Y1O
  4. 満足のいく結果を得る:http://cl.ly/0Q1M390i3A3h2F3u2T19
4

4 に答える 4

7

これは、コードを1行も使用しないソリューションです。

  1. Interface Builder で、View Controller を全画面表示とフリーフォーム サイズに設定します。
  2. ビューのサイズ設定で、高さを 480px に設定します
  3. Info.plist で、ステータス バーのスタイルが半透明の黒であることを確認します。
  4. 打ち上げて観察

一番上の投稿の各ステップのスクリーンショットのリンクを参照してください。

于 2012-04-11T08:36:16.657 に答える
2

さて、可能だと言われたので、メイン ビューの上にビューを配置し、y 座標を -20 に設定してみました。次に、Info.plist に移動して に設定Status bar styleTransparent black style (alpha of 0.5)ます。配置したビューは、ステータス バーの下に表示されました。

ここに画像の説明を入力

これは実行時にのみ発生しました。Interface Buider では、シミュレートされた半透明のステータス バーは灰色ですが不透明です。

編集: ビュー コントローラーのメイン ビューをこのスペースに移動する場合は、viewWillAppear. (途中で移動しようとするとviewDidLoad、後で元に戻ります。)

- (void)viewWillAppear:(BOOL)animated;
{
    [super viewWillAppear:animated];

    // Move the main view upwards if it isn't already there.
    CGRect frame = [[self view] frame];
    frame.size.height += frame.origin.y;
    frame.origin.y = 0;
    [[self view] setFrame:frame];
}

ただし、回転後に元に戻され、回転に応答しようとすると、セルのレイアウトが壊れてしまいましたUITableView

Swift版はこちら。うまくいくようです。これらの App Store のスクリーン ショットを取得するための優れたソリューション (info.plist の変更に加えて、.

オーバーライド func viewWillAppear(animated: Bool) {

    super.viewWillAppear(animated)

    // Move the main view upwards if it isn't already there.
    var frame: CGRect = self.view.frame
    frame.size.height += frame.origin.y
    frame.origin.y = 0
    self.view.frame = frame
}
于 2012-04-10T11:46:45.580 に答える
1

インターフェイスビルダーで負の Y (-20) 座標を作成するだけです。

于 2012-04-10T08:09:01.353 に答える
-1

Interface Builder の属性インスペクターの [シミュレートされたメトリック] セクションで、[ステータス バー] の値を変更してみてください。"Inferred" に設定すると、Xcode はビュー コントローラーについて何も仮定しないため、ビューのサイズを任意のサイズに設定できます (意味のないサイズであっても)。アプリでステータス バーを非表示にする方法については、ステータス バーに関するこの投稿をご覧ください。

于 2012-04-10T09:29:37.977 に答える