web-dev-qa-db-ja.com

iOS 9でステータスバーを非表示にする

IOS 9でステータスバーを非表示にするにはどうすればよいですか?

これは現在非推奨です。

 [UIApplication sharedApplication] setStatusBarHidden:YES];
32
cdub

Swift-3

 override var prefersStatusBarHidden: Bool {  
    return true  
}  

情報を取得しました Here

  • funcvarに変更します

  • ()を削除

  • ->:に変更します

計算された変数にはゲッター関数があるため、これは機能します。そのため、前に実装していた関数は単にゲッター関数になります。


2016年以降:シンプルなもののような

Info.plistで、statusBar Hiddenに次の2つのプロパティを追加します

コントローラーベースのステータスバーの外観を表示(ブール値:NO)

ステータスバーは最初は非表示です(ブール値:YES)

ソース別

<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

または

enter image description here


古い答え! ...

  1. didFinishLaunchingWithOptionsapplication.statusBarHiddenを追加します

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    application.statusBarHidden = YES;
    return YES;
    }
    

そして追加

  1. info.plistにこれを追加View controller-based status bar appearance set NO

    View controller-based status bar appearance = NO
    

ビューコントローラーベースの隠しセット

View Controllerにメソッドを追加します。

目的-C

- (BOOL)prefersStatusBarHidden {
    return YES;
}

2個までスイフト

override func prefersStatusBarHidden() -> Bool {
return true
}

(良い)iOS 9.0の2016.5.17はうまく機能しました。

更新された回答

  1. Info.plistファイルに移動します
  2. これらの行の1つにカーソルを合わせると、(+)および(-)ボタンが表示されます。
  3. プラスボタンをクリックして新しいキーを追加します
  4. start with capital Vと入力すると、自動的に最初の選択肢はコントローラーベースのステータスバーの外観を表示します。KEYとして追加します。
  5. VALUEを「NO」に設定します
  6. Objective-CのAppDelegate.mにアクセスしてください(for Swift language:AppDelegate.Swift))
  7. メソッド内にコードを追加します

Objective-Cの場合:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [application setStatusBarHidden:YES];

    return YES;
}

Swiftの場合:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool {
    application.statusBarHidden = true

    return true
}
81
Anbu.Karthik

info.plistで、次の2つのプロパティを追加します。

View controller-based status bar appearance (NO)

Status bar is initially hidden (YES)
16
Jamil

setStatusBarHidden:のドキュメントでは、代わりに何を使用するかについて言及していないことを知っています。しかし、UIApplicationのヘッダーはそうします。

// Setting statusBarHidden does nothing if your application is using the default UIViewController-based status bar system.
@property(readwrite, nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController prefersStatusBarHidden]");
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_DEPRECATED_IOS(3_2, 9_0, "Use -[UIViewController prefersStatusBarHidden]");

ここでは、prefersStatusBarHiddenUIViewController を使用し、View Controllerベースのステータスバースタイルを使用する必要があると記載されています。

ここで必要なことは、View Controllerでステータスバーを表示または非表示にする必要があるかどうかを設定することだけです。そのようです :

- (BOOL)prefersStatusBarHidden {
   return YES;
}
7
rckoenes

iOS 9 +およびSwift 3 +のステータスバーの可視性のコントロールを簡単に返す方法は次のとおりです。

  1. 追加 View controller-based status bar appearanceYES値を持つキーInfo.plist
  2. この変数をView Controllerに追加します。

    private var isStatusBarHidden = false {
        didSet {
            setNeedsStatusBarAppearanceUpdate()
        }
    }
    
  3. prefersStatusBarHiddenプロパティをオーバーライドします。

    override var prefersStatusBarHidden: Bool {
        return isStatusBarHidden
    }
    

それでおしまい。これで、isStatusBarHidden = trueおよびisStatusBarHidden = falseいつでも好きなときに。

6
Andrey Gordeev

簡単なアプローチは、アプリケーションのwindowLevelを必要に応じて通常またはstatusBarに設定し、開始することです。

Objective-C

ステータスバーを非表示にするには

 UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelStatusBar;

ステータスバーを表示するには

 UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelNormal;

また、ブール値NOのKeyView Controllerベースのステータスバーの外観)を追加します。

enter image description here

2
daris mathew

何らかの理由でView controller-based status bar appearanceYESと等しい場合(たとえば、ステータスバーを白に保つため)

appDelegateのdidFinishLaunchingWithOptionsメソッドまたはnavigationControllerを設定する場所で:

yourNavigationController.navigationBar.barStyle = .black

次に、 alex-staravoita の素晴らしい答えを使用して、ステータスバーを非表示にする場所に次のコードを追加します。

override var preferredStatusBarStyle: UIStatusBarStyle {
  return .lightContent
}

これがこの結果を達成する正しい方法であるかどうかはわかりませんが、私にとってはうまくいきましたし、他の人にも役立つことを願っています:)

1
budidino

ほとんどのiOSで動作します。 iOS 10でテストしました。

  1. Info.plistを開く
  2. 「コントローラーベースのステータスバーの外観を表示」を「いいえ」に設定
  3. 「ステータスバーは最初は非表示」がYESに設定されています
  4. 完了
0
emraz