Aplikasi saya memiliki latar belakang gelap, tapi di iOS 7 status bar menjadi transparan. Jadi saya bisa't melihat apa-apa di sana, hanya indikator baterai hijau di sudut. Bagaimana saya bisa mengubah status bar warna teks putih seperti itu pada layar awal?
Mengatur UIViewControllerBasedStatusBarAppearance
ke YA
dalam .plist.
Di viewDidLoad
melakukan [self setNeedsStatusBarAppearanceUpdate];
Tambahkan metode berikut:
Catatan: Ini tidak bekerja untuk pengendali dalam UINavigationController
, silakan lihat Tyson's komentar below :)
Swift 3 - Ini akan bekerja pengendali dalam UINavigationController
. Tambahkan kode ini di dalam controller.
// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Swift 5 dan SwiftUI
Untuk SwiftUI membuat new swift file yang bernama HostingController.swift
import Foundation
import UIKit
import SwiftUI
class HostingController: UIHostingController<ContentView> {
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
Kemudian ubah baris kode berikut di SceneDelegate.swift
window.rootViewController = UIHostingController(rootView: ContentView())
untuk
window.rootViewController = HostingController(rootView: ContentView())
Atau, anda dapat memilih keluar dari view-controller berdasarkan status bar penampilan:
View controller berbasis status bar penampilan
untuk TIDAK ada
di dalam Info.plist
.[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Catatan: metode Ini telah usang di iOS9. Gunakan preferredStatusBarStyle
pada UIViewController sebaliknya. (lihat Pengembang Apple Perpustakaan)
Anda dapat melakukan ini tanpa menulis setiap baris kode!
Lakukan hal berikut untuk membuat status bar warna teks putih melalui seluruh aplikasi
Pada anda proyek plist file:
hitam Transparan ala (alpha 0.5)
TIDAK ada
TIDAK ada
Catatan: Paling upvoted menjawab tidak bekerja untuk iOS 7 / 8
Di Info.plist set 'View controller berbasis status bar penampilan' karena TIDAK ada
Di AppDelegate tambahkan
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
untuk
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
......
...
}
Solusi ini bekerja untuk iOS 7 / 8
Bagi saya, tidak ada yang terjadi dengan menggunakan semua hal-hal dalam jawaban lainnya (dan dari sumber lain/dokumentasi). Apa yang membantu untuk mengatur Navigasi Bar Gaya "Black" di XIB. Ini mengubah teks menjadi putih tanpa kode apapun sama sekali.
Tidak ada yang bekerja untuk saya, jadi di sini adalah solusi...
Di Info.plist
, tambahkan baris:
UIViewControllerBasedStatusBarAppearance
, dan menetapkan nilai TIDAK
.
Kemudian di AppDelegate di didFinishLaunchingWithOptions
, tambahkan baris ini:
[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleLightContent];
Anda tidak perlu melakukan apapun kode ini
Anda perlu menambahkan "View controller berbasis status bar penampilan" tombol di info.plist sebagai berikut:
& menetapkan nilai tipe Boolean & nilai NO. Kemudian klik pada pengaturan proyek,kemudian klik pada Tab Umum & di bawah Penyebaran Info menetapkan pilihan status bar gaya .Cahaya sebagai berikut:
Thats it.
Hanya dua langkah-langkah sebagai berikut:
Langkah 1:
Di bawah tab Info dari proyek target
, Tambahkan Baris:
UIViewControllerBasedStatusBarAppearance
, set nilai TIDAK
.
Langkah 2:
Dalam proyek AppDelegate.m
:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
…
[application setStatusBarStyle:UIStatusBarStyleLightContent];
…
}
Ini bekerja di Golden Master iOS 7 dan Xcode 5 GM benih dan iOS7 SDK dirilis pada September 18th, 2013 (setidaknya dengan controller navigasi tersembunyi):
Set yang UIViewControllerBasedStatusBarAppearance
untuk TIDAK ada
di
Info.plist
.
Di ViewDidLoad
metode atau di mana saja, di mana anda ingin mengubah
status bar gaya:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Dalam kasus anda UIViewController dalam UINavigationController anda akan memiliki untuk mengatur BarStyle:
-[UINavigationBar setBarStyle:UIBarStyleBlack]
Asli Jawabannya di sini
Jika anda memiliki aplikasi yang tertanam controller navigasi yang dibuat melalui Interface Builder, pastikan untuk mengatur berikut dalam kelas yang mengelola navigasi anda controller:
-(UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
Yang harus menjadi semua yang anda butuhkan.
I'm menggunakan Xcode 6 beta 5 pada Swift proyek, untuk iOS 7 app.
Berikut adalah apa yang saya lakukan, dan itu bekerja:
info.plist:
Di AppDelegate.m, tambahkan berikut.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}
Dan di Plist, set 'View controller berbasis status bar penampilan' NO.
Nah, ini benar-benar bekerja seperti sepotong kue untuk saya.
Pergi ke aplikasi anda's info.plist
.
View controller berbasis status bar penampilan
untuk TIDAK ada
untuk
UIStatusBarStyleLightContent`Kemudian pergi untuk aplikasi anda's delegasi dan paste di kode berikut di mana anda mengatur windows's RootViewController.
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
{
UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0,320, 20)];
view.backgroundColor=[UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:1.0];
[self.window.rootViewController.view addSubview:view];
}
Bingo. It's bekerja untuk saya.
Di Swift 3 ini sangat mudah hanya dengan 2 langkah.
Pergi untuk info anda.plist dan mengubah kunci View controller berbasis status bar penampilan
untuk "TIDAK".
Kemudian di Appdelegate hanya menambahkan baris ini di didfinishlaunchingwithoptions metode
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UIApplication.shared.statusBarStyle = .lightContent
return true
}
ini telah usang di iOS9 sekarang anda harus melakukan override properti ini dalam rootviewcontroller
lakukan ini telah usang di iOS 9 harus melakukan ini pada rootviewcontroller
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
iOS 7 memungkinkan individu view controller untuk menentukan tampilan status bar, seperti yang dijelaskan oleh pengembang Apple dokumentasi:
iOS 7 memberikan view controller kemampuan untuk menyesuaikan gaya dari status bar saat aplikasi sedang berjalan. Cara yang baik untuk mengubah status bar gaya dinamis adalah dengan menerapkan
preferredStatusBarStyle
dan—dalam sebuah animasi blok—update status bar penampilan dan panggilansetNeedsStatusBarAppearanceUpdate
.
Pengaturan status bar penampilan secara global adalah proses dua langkah.
Pertama, anda perlu untuk memberitahu iOS yang anda don't ingin mengatur status bar tampilan pada view-dengan-pemandangan dasar.
Kemudian anda perlu untuk mengambil alih dan benar-benar mengatur global baru status bar gaya.
Untuk menonaktifkan melihat-dengan-melihat status bar kontrol, anda'll perlu mengatur View controller berbasis status bar penampilan
properti Info.plist
.
Buka Project Navigator dan memilih proyek untuk aplikasi iOS anda, kemudian pilih tab Info.
Arahkan kursor ke baris, lalu klik tanda plus yang muncul untuk menambahkan properti baru untuk anda .plist
.
Masukkan View controller berbasis status bar penampilan
di bidang Kunci, maka pastikan Jenis lapangan diatur untuk Boolean
. Akhirnya, masukkan TIDAK
dalam bidang Nilai.
Untuk mengatur global gaya untuk status bar, tambahkan properti lain di bawah tab Info dengan kunci dari Status bar style
, Jenis String
dan Nilai Buram hitam style
.
Berikut ini's blog post dengan sedikit lebih detail dan beberapa contoh kode:
http://codebleep.com/setting-the-status-bar-text-color-in-ios-7/
Jawaban diperbarui untuk Xcode Benih GM:
Di Info.plist
menempatkan View controller berbasis status bar penampilan
sebagai TIDAK ada
Dalam proyek ini, menetapkan:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];