Aplikasi saya memiliki latar belakang gelap, tetapi di iOS 7 bilah status menjadi transparan. Jadi saya tidak bisa melihat apa pun di sana, hanya indikator baterai hijau di sudut. Bagaimana cara mengubah warna teks bilah status menjadi putih seperti di layar beranda?
990
Jawaban:
Setel
UIViewControllerBasedStatusBarAppearance
keYES
dalam file .plist.Di
viewDidLoad
lakukan a[self setNeedsStatusBarAppearanceUpdate];
Tambahkan metode berikut:
Catatan : Ini tidak berfungsi untuk pengontrol di dalam
UINavigationController
, silakan lihat komentar Tyson di bawah ini :)Swift 3 - Ini akan berfungsi pengendali di dalam
UINavigationController
. Tambahkan kode ini di dalam controller Anda.Swift 5 dan SwiftUI
Untuk SwiftUI buat file swift baru bernama
HostingController.swift
Kemudian ubah baris kode berikut di
SceneDelegate.swift
untuk
sumber
Atau, Anda dapat memilih keluar dari tampilan status bar berbasis-pengontrol:
View controller-based status bar appearance
keNO
dalamInfo.plist
.[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Catatan: Metode ini sudah usang di iOS9. Gunakan
preferredStatusBarStyle
pada UIViewController sebagai gantinya. (lihat Perpustakaan Pengembang Apple )sumber
Anda dapat melakukan ini tanpa menulis baris kode apa pun!
Lakukan hal berikut untuk membuat teks bilah status berwarna putih melalui seluruh aplikasi
Pada file proyek plist Anda :
Transparent black style (alpha of 0.5)
NO
NO
sumber
UIStatusBarStyleLightContent
diplist info
NAMUN adaTransparent Black
yang akan melakukan trik yang sama :) plus, Anda perlu menambahkanView controller-based status bar appearance
karena tidak ada di sana awalnya dan itu semua yang Anda butuhkan untuk membuatnya bekerja :)<key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>UIViewControllerBasedStatusBarAppearance</key> <false/>
Catatan: Sebagian besar jawaban yang dipilih tidak berfungsi untuk iOS 7/8
Di Info.plist, tetapkan 'Lihat tampilan bilah status berbasis pengontrol' sebagai NO
Di AppDelegate tambahkan
untuk
Solusi ini berfungsi untuk iOS 7/8
sumber
Bagi saya, tidak ada yang terjadi dengan menggunakan semua hal di jawaban lain (dan dari sumber / dokumentasi lain). Apa yang membantu adalah mengatur Gaya Bilah Navigasi ke "Hitam" di XIB. Ini mengubah teks menjadi putih tanpa kode sama sekali.
sumber
Tidak ada yang bekerja untuk saya, jadi di sini adalah solusi yang berfungsi ...
Di
Info.plist
, tambahkan baris:UIViewControllerBasedStatusBarAppearance
, dan atur nilainyaNO
.Kemudian di AppDelegate in
didFinishLaunchingWithOptions
, tambahkan baris ini:sumber
Anda tidak perlu melakukan kode apa pun untuk ini
Anda perlu menambahkan kunci "Lihat tampilan bilah status berbasis pengontrol" di info. Daftar sebagai berikut:
& setel nilai nilainya ke Boolean & nilainya menjadi NO. Kemudian klik pada pengaturan proyek, lalu klik pada General Tab & di bawah Deployment Info atur gaya bar status yang disukai ke .Light sebagai berikut:
Itu dia.
sumber
Hanya dua langkah sebagai berikut:
Langkah 1:
Di bawah tab Info pada
project target
, Tambahkan Baris:UIViewControllerBasedStatusBarAppearance
, tetapkan nilaiNO
.Langkah 2:
Dalam proyek
AppDelegate.m
:sumber
Ini berfungsi di Golden Master iOS 7 dan Xcode 5 GM seed dan iOS7 SDK yang dirilis pada 18 September 2013 (setidaknya dengan pengontrol navigasi yang disembunyikan):
Diatur
the UIViewControllerBasedStatusBarAppearance
keNO
dalamInfo.plist
.Dalam
ViewDidLoad
metode atau di mana saja, di mana Anda ingin mengubah gaya bilah status:[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
sumber
Jika UIViewController berada di dalam UINavigationController, Anda harus mengatur BarStyle:
Jawaban Asli ada di sini
https://devforums.apple.com/message/844264#844264
sumber
Jika Anda memiliki pengontrol navigasi tertanam yang dibuat melalui Interface Builder , pastikan untuk mengatur yang berikut di kelas yang mengelola pengontrol navigasi Anda:
Hanya itu yang Anda butuhkan.
sumber
Saya menggunakan Xcode 6 beta 5 pada proyek Swift , untuk aplikasi iOS 7.
Inilah yang saya lakukan, dan berhasil:
daftar info:
sumber
Di AppDelegate.m, tambahkan berikut ini.
Dan dalam file Plist, atur 'Lihat tampilan status bar berbasis pengontrol' ke NO.
sumber
Cukup Di Appdelegate
sumber
Nah, ini benar-benar berfungsi seperti sepotong kue untuk saya.
Buka aplikasi Anda
info.plist
.View controller-based status bar appearance
keNO
Status bar style
keUIStatusBarStyleLightContent
Lalu pergi ke delegasi aplikasi Anda dan rekatkan kode berikut ini di mana Anda mengatur RootViewController windows Anda.
Bingo. Ini bekerja untuk saya.
sumber
Pergi ke
Project
->Target
,Kemudian atur
Status Bar Style
keLight
. Itu membuat status-bar putih dari layar peluncuran.Kemudian set
View controller-based status bar appearance
sama denganNO
diInfo.plist
.sumber
View controller-based status bar appearance equal
untukNO
itu bagian saya hilang. Terima kasihIn Swift 3 sangat mudah hanya dengan 2 langkah. Buka info.plist Anda dan ubah kunci
View controller-based status bar appearance
menjadi "TIDAK". Kemudian di Appdelegate cukup tambahkan baris ini dalam metode didfinishlaunchingwithoptionsini telah ditinggalkan di iOS9 sekarang Anda harus melakukan override properti ini di rootviewcontroller
melakukan ini sudah ditinggalkan di iOS 9 harus melakukan ini pada rootviewcontroller
sumber
iOS 7 memungkinkan pengontrol tampilan individual untuk menentukan tampilan bilah status, seperti yang dijelaskan oleh dokumentasi pengembang Apple:
Mengatur tampilan status bar secara global adalah proses dua langkah.
Pertama, Anda perlu memberi tahu iOS bahwa Anda tidak ingin mengatur tampilan bilah status berdasarkan tampilan demi tampilan.
Maka Anda perlu mengambil alih dan benar-benar mengatur gaya bar status global baru.
Untuk menonaktifkan kontrol bilah status tampilan-per-lihat, Anda harus mengatur
View controller-based status bar appearance
properti tersebutInfo.plist
.Buka Project Navigator dan pilih proyek untuk aplikasi iOS Anda, lalu pilih tab Info.
Arahkan lebih dari satu baris, lalu klik tanda plus yang muncul untuk menambahkan properti baru ke Anda
.plist
.Masukkan
View controller-based status bar appearance
bidang Key, lalu pastikan bidang Type diatur keBoolean
. Terakhir, masukkanNO
di bidang Nilai.Untuk menetapkan gaya global untuk bilah status, tambahkan properti lain di bawah tab Info dengan kunci
Status bar style
, TipeString
dan NilaiOpaque black style
.Berikut ini posting blog dengan sedikit lebih detail dan beberapa kode contoh:
http://codebleep.com/setting-the-status-bar-text-color-in-ios-7/
sumber
Tidak perlu melakukan beberapa tambahan, cukup tulis kode ini di viewController Anda dan dapatkan warna bilah status putih
sumber
Jawaban diperbarui untuk untuk Xcode GM Seed:
Di
Info.plist
masukkanView controller-based status bar appearance
sebagaiNO
Dalam proyek tersebut, atur:
Di ViewDidLoad:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
sumber
Saya pikir semua jawaban tidak benar-benar menunjukkan masalah karena semuanya bekerja dalam skenario tertentu. Tetapi jika Anda perlu untuk menutupi semua kasus, ikuti poin di bawah ini:
Bergantung pada di mana Anda memerlukan gaya lampu bilah status, Anda harus selalu mengingat 3 poin ini:
1) Jika Anda memerlukan bilah status di layar peluncuran atau di tempat lain, di mana Anda tidak dapat mengontrolnya (tidak dalam pengontrol tampilan, melainkan beberapa elemen / momen yang dikontrol sistem seperti Layar Luncurkan) Anda membuka pengaturan proyek Anda
2) jika Anda memiliki pengontrol di dalam pengontrol navigasi Anda dapat mengubahnya di pembuat antarmuka sebagai berikut:
a) Pilih bilah navigasi dari pengontrol navigasi Anda
b) Kemudian atur gaya bilah navigasi ke "Hitam", karena ini berarti Anda akan memiliki "hitam" -> latar belakang gelap di bawah bilah status Anda, sehingga bilah status akan menjadi putih
Atau lakukan dalam kode sebagai berikut
3) Jika Anda memiliki pengontrol sendiri yang perlu memiliki gaya bilah status sendiri dan tidak tertanam dalam beberapa struktur wadah sebagai UINavigationController
Setel gaya bilah status dalam kode untuk pengontrol:
sumber
Cukup menelepon
dalam
metode
AppDelegate
karya saya bagus untuk saya di iOS7.sumber
View controller-based status bar appearance = NO
Ini didokumentasikan dalam Panduan Transisi UI iOS 7 , yang Anda perlukan untuk mengakses ID pengembang Apple secara langsung. Kutipan yang relevan:
Mungkin juga menarik:
Saya pasti akan merekomendasikan melihat melalui dokumen, yang, sekali lagi, Anda dapat mengakses dengan ID pengembang Apple Anda.
sumber
Berikut ini adalah Panduan / Instruksi Apple tentang perubahan status bar. Hanya Gelap & terang (sementara & hitam) diizinkan di bilah status.
Inilah - Cara mengubah gaya bilah status:
Jika Anda ingin mengatur gaya bilah status, tingkat aplikasi kemudian diatur
UIViewControllerBasedStatusBarAppearance
keNO
dalam file `.plist 'Anda.jika Anda ingin mengatur gaya bilah status, pada tingkat pengontrol tampilan lalu ikuti langkah-langkah ini:
UIViewControllerBasedStatusBarAppearance
keYES
dalam.plist
file, jika Anda perlu mengatur gaya bilah status di level UIViewController saja.Dalam fungsi add viewDidLoad -
setNeedsStatusBarAppearanceUpdate
menimpa preferStatusBarStyle di pengontrol tampilan Anda.
-
Tetapkan nilai .plist sesuai dengan tingkat pengaturan gaya bilah status.
Berikut adalah beberapa trik untuk mengubah / mengatur warna latar belakang untuk bilah status selama peluncuran aplikasi atau selama viewDidLoad dari pengontrol tampilan Anda.
Ini hasilnya:
sumber
Saya melakukan beberapa hal yang berbeda dan berfungsi untuk saya.
Tanpa perubahan kode, saya mengkonfigurasi file .plist saya seperti ini:
Saya harap ini membantu.
sunting
Untuk setiap pengontrol tampilan, saya mengubah properti Metrik Simulasi "status bar", di storyboard, dari "disimpulkan" menjadi "Konten Ringan"
sumber
Jika Anda menginginkan hasil yang sama dengan Swift, Anda dapat menggunakan kode ini di file AppDelegate.swift Anda:
Dan teks bilah status Anda akan menjadi putih :-)!
sumber
Jika Anda masih ingin menggunakan
View controller-based status bar appearance
info.plist yang disetel ke YA, artinya Anda dapat mengubah bilah status untuk setiap pengontrol tampilan, gunakan yang berikut ini untuk teks putih di bilah status di ViewDidLoad:sumber
Di Plist, tambahkan ini:
UIStatusBarStyleLightContent
NO
sumber
di info.plist atur nilai field NO View tampilan status bar berbasis pengontrol dan atur lampu gaya statusbar di target> pengaturan umum.
sumber
Biarkan saya memberi Anda jawaban lengkap untuk pertanyaan Anda. Mengubah warna teks status bar sangat mudah tetapi sedikit membingungkan di iOS 7 khusus untuk pemula.
Jika Anda mencoba mengubah warna dari hitam menjadi putih di Storyboard dengan memilih pengontrol tampilan dan pergi ke Metrik Simulasi di sisi kanan, itu tidak akan berfungsi dan saya tidak tahu mengapa. Itu harus bekerja dengan mengubah seperti ini tetapi bagaimana pun caranya.
Kedua, Anda tidak akan menemukan properti UIViewControllerBasedStatusBarAppearance di plist Anda tetapi secara default tidak ada. Anda harus menambahkannya sendiri dengan mengeklik tombol + dan kemudian mengaturnya menjadi TIDAK.
ios 7 warna teks status bar
Terakhir, Anda harus membuka file AppDelegate.m Anda dan menambahkan yang berikut ini di metode didFinishLaunchingWithOptions, tambahkan baris berikut:
Ini akan mengubah warna menjadi putih untuk semua pengontrol tampilan Anda. Semoga ini membantu!
sumber