IOS 9でステータスバーを非表示にするにはどうすればよいですか?
これは現在非推奨です。
[UIApplication sharedApplication] setStatusBarHidden:YES];
Swift-3
override var prefersStatusBarHidden: Bool {
return true
}
情報を取得しました Here
func
をvar
に変更します
()
を削除
->
を:
に変更します
計算された変数にはゲッター関数があるため、これは機能します。そのため、前に実装していた関数は単にゲッター関数になります。
2016年以降:シンプルなもののような
Info.plistで、statusBar Hiddenに次の2つのプロパティを追加します
コントローラーベースのステータスバーの外観を表示(ブール値:NO)
ステータスバーは最初は非表示です(ブール値:YES)
ソース別
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
または
古い答え! ...
didFinishLaunchingWithOptions
にapplication.statusBarHidden
を追加します
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
application.statusBarHidden = YES;
return YES;
}
そして追加
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はうまく機能しました。
更新された回答
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
}
info.plistで、次の2つのプロパティを追加します。
View controller-based status bar appearance (NO)
Status bar is initially hidden (YES)
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]");
ここでは、prefersStatusBarHidden
で UIViewController
を使用し、View Controllerベースのステータスバースタイルを使用する必要があると記載されています。
ここで必要なことは、View Controllerでステータスバーを表示または非表示にする必要があるかどうかを設定することだけです。そのようです :
- (BOOL)prefersStatusBarHidden {
return YES;
}
iOS 9 +およびSwift 3 +のステータスバーの可視性のコントロールを簡単に返す方法は次のとおりです。
View controller-based status bar appearance
YES
値を持つキーInfo.plist
。この変数をView Controllerに追加します。
private var isStatusBarHidden = false {
didSet {
setNeedsStatusBarAppearanceUpdate()
}
}
prefersStatusBarHidden
プロパティをオーバーライドします。
override var prefersStatusBarHidden: Bool {
return isStatusBarHidden
}
それでおしまい。これで、isStatusBarHidden = true
およびisStatusBarHidden = false
いつでも好きなときに。
簡単なアプローチは、アプリケーションのwindowLevel
を必要に応じて通常またはstatusBarに設定し、開始することです。
Objective-C
ステータスバーを非表示にするには
UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelStatusBar;
ステータスバーを表示するには
UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelNormal;
また、ブール値NOのKey
(View Controllerベースのステータスバーの外観)を追加します。
何らかの理由でView controller-based status bar appearance
がYES
と等しい場合(たとえば、ステータスバーを白に保つため)
appDelegateのdidFinishLaunchingWithOptions
メソッドまたはnavigationControllerを設定する場所で:
yourNavigationController.navigationBar.barStyle = .black
次に、 alex-staravoita の素晴らしい答えを使用して、ステータスバーを非表示にする場所に次のコードを追加します。
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
これがこの結果を達成する正しい方法であるかどうかはわかりませんが、私にとってはうまくいきましたし、他の人にも役立つことを願っています:)
ほとんどのiOSで動作します。 iOS 10でテストしました。