Kaip pakeisti būsenos juostos teksto spalvą „iOS 7“

Mano programa turi tamsų foną, bet „iOS 7“ būsenos juosta tapo skaidri. Taigi nematau nieko, tik kampe esantis žalias akumuliatoriaus indikatorius. Kaip pakeisti būsenos juostos teksto spalvą baltai, kaip ir pagrindiniame ekrane?

891
16 июля '13 в 17:11 2013-07-16 17:11 Oleksandr Veremchuk buvo paprašytas liepos 16 d. 13 val. 2013-07-16 17:11
@ 52 atsakymai
  • 1
  • 2
  • .Plist faile nustatykite UIViewControllerBasedStatusBarAppearance į YES .

  • [self setNeedsStatusBarAppearanceUpdate]; paleiskite [self setNeedsStatusBarAppearanceUpdate];

  • Pridėti šį metodą:

     - (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; } 

Pastaba Tai neveikia valdiklių, esančių UINavigationController , viduje, žr.

Swift 3 . Tai veiks su valdikliais, esančiais UINavigationController . Pridėkite šį kodą valdiklio viduje.

 // Preferred status bar style lightContent to use on dark background. // Swift 3 override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent } 
1269
21 июля '13 в 6:36 2013-07-21 06:36 atsakymą pateikė Peter B. Kramer, liepos 21 d., 13 val., 6:36, 2013-07-21 06:36

Arba galite išjungti būsenos juostos išvaizdą valdymo skydelyje:

  • Info.plist nustatykite „ View controller-based status bar appearance į NO .
  • Skambinkite [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

Pastaba Šis metodas iOS9 yra pasenęs. Vietoj to, naudokite preferredStatusBarStyle UIViewController. (žr. „ Apple“ kūrėjo biblioteką )

830
12 авг. atsakymas pateikiamas 12 d. 2013-08-12 13:35 '13, 13:35, 2013-08-12 13:35

Tai galite padaryti be vieno eilutės kodo!
Atlikite šiuos veiksmus taip, kad teksto spalva būsenos juostoje būtų balta visoje programoje.

Plistinio projekto faile :

  • Būsenos juostos stilius: Transparent black style (alpha of 0.5)
  • Būsenos juostos būsenos peržiūra pagal valdiklį: NO
  • Būsenos juosta iš pradžių yra paslėpta: NO
424
11 сент. atsakymą pateikė Lucas 11 sep. 2013-09-11 07:47 '13, 7:47, 2013-09-11 07:47

Pastaba Dauguma pataisytų atsakymų neveikia „iOS 7/8“

„Info.plist“ nustatykite „View Controller Based Status Bar“ kaip „NO“

Pridėti prie „AppDelegate“

 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 

į

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ ...... ... } 

Šis sprendimas veikia „iOS 7/8“

240
23 сент. Pradeep Mahdevu atsakymas rugsėjo 23 d 2013-09-23 08:11 '13, 08:11 am 2013-09-23 08:11

Man niekas nenaudojo visų dalykų naudojimui kituose atsakymuose (ir iš kitų šaltinių / dokumentų). Kas padėjo nustatyti navigacijos juostos „Black“ stilių XIB. Tai pakeitė tekstą į baltą be kodo.

2019

105
12 сент. atsakymas pateikiamas haraldmartin 12 sep . 2013-09-12 19:42 '13, 7:42 pm 2013-09-12 19:42

Nė vienas iš jų man nepadarė, todėl čia yra darbo sprendimas ...

Pridėti šią eilutę į „ Info.plist :

UIViewControllerBasedStatusBarAppearance ir reikšmės nustatymas į NO .

Tada „AppDelegate“ programoje „ didFinishLaunchingWithOptions pridedamos šios eilutės:

 [application setStatusBarHidden:NO]; [application setStatusBarStyle:UIStatusBarStyleLightContent]; 
90
29 дек. atsakymas duotas stepik21 29 dec. 2013-12-29 14:28 '13, 14:28, 2013-12-29 14:28

Tam nereikia jokių kodų.

„Info.plist“ sistemoje turite pridėti „Peržiūrėti valdiklio būsenos juostos išvaizdą“: 2019

09 февр. atsakymas pateikiamas Ajinkya Patil 09 vasario 9 d. 2016-02-09 12:00 '16 at 12:00 2016-02-09 12:00

Tik du žingsniai:

1 veiksmas:

project target skirtuke „Informacija“ pridėkite eilutę:

UIViewControllerBasedStatusBarAppearance , nustatykite į NO .

2 veiksmas:

Projekte „ AppDelegate.m :

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ … [application setStatusBarStyle:UIStatusBarStyleLightContent]; … } 
48
21 дек. atsakymas pateikiamas 21 d. 2013-12-21 16:55 '13, 16:55, 2013-12-21 16:55

Jis veikia „Golden Master iOS 7“ ir „Xcode 5“ sėklose GM ir iOS7 SDK, išleistas 2013 m. Rugsėjo 18 d. (Bent jau su navigacijos valdikliu):

  • the UIViewControllerBasedStatusBarAppearance nustatykite the UIViewControllerBasedStatusBarAppearance į NO .

  • ViewDidLoad metode arba bet kur, kur norite pakeisti būsenos juostos stilių: [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

41
13 сент. Atsakymą pateikė Deniss Fedotovs rugsėjo 13 d 2013-09-13 11:28 '13, 11:28 2013-09-13 11:28

Jei jūsų UIViewController yra UINavigationController, turite įdiegti BarStyle:

 -[UINavigationBar setBarStyle:UIBarStyleBlack] 

Originalus atsakymas yra čia.

https://devforums.apple.com/message/844264#844264

32
27 сент. Atsakymą pateikė Mohit Padalia, rugsėjo 27 d 2013-09-27 11:16 '13, 11:16, 2013-09-27 11:16

Jei turite integruotą navigacijos valdiklį, sukurtą naudodami sąsajos kūrimo priemonę , nepamirškite savo klasėje, kuri valdo jūsų navigacijos valdiklį, nustatyti šiuos veiksmus:

 -(UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleLightContent; } 

Tai turėtų būti viskas, ko jums reikia.

28
19 авг. atsakymas į matt bernardo 19 rug. 2013-08-19 03:41 '13, 03:41 am 2013-08-19 03:41

Aš naudoju „ Xcode 6“ beta 5 „ Swift“ programai, skirtai „iOS 7“ programai.

Tai aš padariau, ir tai veikia:

info.plist:

2019

26
21 авг. atsakymą pateikė fancoolo 21 rug . 2014-08-21 01:34 '14 at 1:34 2014-08-21 01:34

Pridėkite „AppDelegate“.

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; } 

„Plist“ faile nustatykite „View Controller Based Control Panel Status“ į „NO“.

22
06 сент. atsakymas pateikiamas neo D1 06 sep. 2014-09-06 07:09 '14 at 7:09 2014-09-06 07:09

Na, tai tikrai veikia kaip tortas man.

Atidarykite programą info.plist .

  • Nustatykite „ View controller-based status bar appearance į NO
  • Nustatykite Status bar style į UIStatusBarStyleLightContent

Tada pereikite prie savo programos delegavimo ir įklijuokite šį kodą, kuriame įdiegsite „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 Jis veikia man.

20
10 янв. atsakymą pateikė Shahid Iqbal sausio 10 d. 2014-01-10 15:40 '14, 15:40 2014-01-10 15:40

Tiesiog Appdelegate

 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 
20
16 янв. atsakymą pateikė Vivek Sehrawat, sausio 16 d 2014-01-16 20:34 '14, 20:34, 2014-01-16 20:34
  • Eikite į ProjectTarget ,

  • Tada nustatykite Status Bar Style į Light . Tai paleidimo ekrane tampa baltos spalvos statuso juosta. 2019

31 мая '16 в 4:46 2016-05-31 04:46 atsakymą pateikė Wanbok Choi gegužės 31 d., 16 d., 4:46, 2016-05-31 04:46

„iOS 7“ leidžia atskiriems peržiūros valdikliams nustatyti būsenos juostos išvaizdą, kaip aprašyta „Apple“ kūrėjo dokumentacijoje:

„iOS 7“ suteikia peržiūros valdytojams galimybę pritaikyti būsenos juostos stilių, kai programa veikia. Geras būdas dinamiškai keisti būsenos juostos stilių yra įgyvendinti preferredStatusBarStyle ir - animacijos bloko viduje - atnaujinti būsenos juostos išvaizdą ir skambinti setNeedsStatusBarAppearanceUpdate .

Būsenos juostos rodymo konfigūravimas visame pasaulyje yra dviejų pakopų procesas.

Pirma, turite pasakyti „iOS“, kad nenorite nustatyti būsenos juostos rodymo peržiūros režimu.

Tada turite prisiimti atsakomybę ir įdiegti naują pasaulinio stiliaus juostos stilių.

Jei norite išjungti peržiūros View controller-based status bar appearance valdymą, reikia nustatyti „ View controller-based status bar appearance control View controller-based status bar appearanceInfo.plist .

Atidarykite projekto navigatorių ir pasirinkite iOS programos projektą, tada pasirinkite skirtuką Informacija.

Pasukite virš linijos, tada spustelėkite pliuso ženklą, kuris pridės naują nuosavybę .plist .

Lauke Key (raktas) įveskite View controller-based status bar appearance , tada patikrinkite, ar laukas Type (tipas) yra nustatytas kaip Boolean . Galiausiai lauke „Reikšmė“ įveskite NO .

Jei norite nustatyti būsenos juostos pasaulinį stilių, skirtuke Informacija pridėkite kitą savybę, naudodami Status bar style klavišą, String tipą ir Opaque black style reikšmes.

Čia yra dienoraščio įrašas, kuriame yra daugiau informacijos ir kai kurių pavyzdžių:

http://codebleep.com/setting-the-status-bar-text-color-in-ios-7/

17
10 дек. Josh Earl atsakymas 10 d. 2013-12-10 16:47 '13, 16:47, 2013-12-10 16:47

Atsakymas atnaujintas Xcode GM sėklai:

  • Programoje „ Info.plist padėkite „ View controller-based status bar appearance kaip NO

  • Projekte nurodykite:

    2019

12
16 сент. atsakymas, kurį parilogiškai pateikė 16 sep . 2013-09-16 09:43 '13, 9:43, 2013-09-16 09:43

Nereikia daryti per daug, tiesiog užrašykite šį kodą į savo „ViewController“ ir gaukite baltos spalvos būseną

 - (UIStatusBarStyle)preferredStatusBarStyle{return UIStatusBarStyleLightContent;} 
11
27 сент. Atsakymą pateikė Mohit tomar, rugsėjo 27 d. 2013-09-27 11:49 '13, 11:49, 2013-09-27 11:49

Manau, kad visi atsakymai iš tikrųjų nerodo problemos, nes jie visi dirba konkrečiais scenarijais. Tačiau, jei reikia aptarti visus atvejus, atlikite šiuos veiksmus:

Priklausomai nuo to, kur jums reikia būsenos juostos stiliaus, visada turėkite omenyje šiuos 3 taškus:

1) Jei paleidimo ekrane arba kitose vietose, kur negalite valdyti būsenos juostos (ne valdiklyje, bet kai kuriems sistemos valdomiems elementams, pvz., Paleidimo ekranui), reikia naudoti juostą 2019

17 сент. Atsakymas, kurį pateikė Fawkes Sep 17 2015-09-17 16:18 '15, 16:18, 2015-09-17 16:18

Tiesiog skambinkite

 [[UINavigationBar appearance] setBarStyle:UIBarStyleBlack]; 

į

 -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { } 

Mano „ AppDelegate “ metodas puikiai tinka iOS7.

10
10 нояб. Atsakymas pateikiamas Cagdas Altinkaya 10 nov. 2013-11-10 23:07 '13, 23:07, 2013-11-10 23:07

Jei norite gauti tą patį rezultatą naudodami „Swift“, šį kodą galite naudoti faile „AppDelegate.swift“:

 UINavigationBar.appearance().barStyle = .BlackTranslucent 

O būsenos juostos tekstas bus baltas :-)!

8
10 янв. atsakymas suteiktas fraxool 10 sausis 2016-01-10 22:30 „16 at 10:30“ 2016-01-10 22:30

Tai aprašyta „ iOS 7 UI“ migracijos vadove , kuriam reikia tiesioginio prisijungimo „Apple“ kūrėjo ID. Atitinkama ištrauka:

Kadangi būsenos juosta yra skaidri, atsispindi užsklanda. [...] Naudokite pastovią UIStatusBarStyle reikšmę, nurodydami, ar būsenos juostos turinys turi būti tamsus arba šviesus:

UIStatusBarStyleDefault rodo tamsią turinį. [...]

UIStatusBarStyleLightContent rodo šviesos turinį. Naudokite, kai už būsenos juostos yra tamsus turinys.

Taip pat galimi interesai:

„IOS 7“ galite valdyti būsenos juostos stilių iš atskiro vew valdiklio ir pakeisti jį, kai programa veikia. Norėdami dalyvauti šiame elgesyje, į „ Info.plist programos Info.plist pridėkite „ UIViewControllerBasedStatusBarAppearance klavišą ir nustatykite jį į YES .

Aš tikrai rekomenduoju peržiūrėti dokumentą, kuris, vėlgi, galite gauti naudodami „Apple Developer ID“.

8
16 июля '13 в 17:24 2013-07-16 17:24 atsakymą pateikė Aaron Miller liepos 16 d., 17:24, 2013-07-16 17:24

Failo info.plist faile nustatykite NO lauko reikšmę.Peržiūrėkite būsenos juostos išvaizdą pagal valdiklį ir nustatykite būsenos juostos šviesos stilių taikinio> bendruosiuose nustatymuose.

7
30 марта '15 в 8:06 2015-03-30 08:06 atsakymą pateikė „ parvind“ kovo 30, 15 d. 8:06 2015-03-30 08:06

Aš padariau keletą dalykų ir tai veikia man.

Be kodo pakeitimo, įdiegiau .plist failą taip:

  • Peržiūrėkite būsenos juostą pagal valdiklį> NO
  • Būsenos juostos stilius> UIStatusBarStyleLightContent (paprastoji eilutė)

Tikiuosi, kad tai padės.

Keisti

Kiekviename peržiūros valdiklyje keičiuosi „Metrikos sintaksė“ ypatybė siužetinėje sistemoje „nuo eilutės“ nuo „iki“ į „Šviesos turinys“

7
22 сент. Felipe Antonio Cardoso atsakymas rugsėjo 22 d 2013-09-22 16:54 '13, 16:54, 2013-09-22 16:54

Leiskite jums pateikti išsamų atsakymą į jūsų klausimą. Teksto spalvos keitimas būsenos juostoje yra labai paprasta, tačiau tai šiek tiek paini iOS 7, ypač pradedantiesiems.

Jei bandote keisti spalvą nuo juodos iki baltos spalvos, pasirinkdami vaizduoklio valdiklį ir dešinėje pusėje pereinant prie modeliuojamų metrikų, tai neveikia, ir aš nežinau, kodėl. Ji turėtų dirbti, keisti tokiu būdu, bet bet kokiu būdu.

Antra, nerasite „UIViewControllerBasedStatusBarAppearance“ savybės savo plist, bet pagal nutylėjimą jis neegzistuoja. Turite ją pridėti, paspausdami mygtuką + ir tada nustatykite reikšmę NO.

Teksto spalva būsenos juostoje 7

Galiausiai, turite pereiti prie „AppDelegate.m“ failo ir į „didFinishLaunchingWithOptions“ metodą pridėti šią eilutę:

  [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 

Tai pakeis spalvą iki balto visiems valdikliams. Tikiuosi, kad tai padės!

7
30 июня '15 в 20:38 2015-06-30 20:38 Atsakymą pateikė Amit Shelgaonkar birželio 15 d. 15 val. 20:38 2015-06-30 20:38

Jei vis tiek norite, kad .plist, norėdami nustatyti reikšmę YES, naudokite View controller-based status bar appearance , o tai reiškia, kad galite keisti kiekvieno peržiūros valdiklio būsenos juostą, balto teksto naudojimui „ViewDidLoad“ būsenos juostoje:

 [[[self navigationController] navigationBar] setBarStyle:UIBarStyleBlackTranslucent]; 
7
05 февр. atsakymą pateikė eirik 05 Feb. 2015-02-05 15:28 '15 15:28 2015-02-05 15:28

Apibendrinant, redaguokite „ Info.plist projektą ir pridėkite:

View controller-based status bar appearance : NO

Status bar style : Opaque black style

arba jei turite neapdorotą raktą / vertės plistą

UIViewControllerBasedStatusBarAppearance : NO

UIStatusBarStyle : Opaque black style

6
08 окт. atsakymą pateikė budidino 08 okt. 2014-10-08 17:17 '14, 17:17, 2014-10-08 17:17

Svarbiausias veiksmas atliekant šį darbą yra tas, kad tik visą ekraną rodantis valdiklis turi diktuoti būsenos juostos stilių.

Jei naudojate navigacijos valdiklį ir norite valdyti būsenos juostą kiekviename peržiūros valdiklyje, turite subklasuoti UINavigationController ir įdiegti pageidaujamąStatusBarStyle, kad jis grąžintų TopViewController pageidavimą.

Įsitikinkite, kad pakeisite klasės nuorodą siužetinėje scenoje nuo UINavigationController iki savo poklasio (pvz., MyNavigationController žemiau pateiktame pavyzdyje).

(Toliau pateikiami darbai man. Jei jūsų paraiška pagrįsta „TabBar“, jūs norite tai padaryti kažkokiu panašiu būdu, atlikdami „UITabBarController“ poklasį, bet aš to nebandžiau).

 @interface MyNavigationController : UINavigationController @end @implementation MyNavigationController - (UIStatusBarStyle)preferredStatusBarStyle { return self.topViewController.preferredStatusBarStyle; } @end 
5
16 окт. Juddsterio spalio 16 d. Atsakymas 2013-10-16 21:21 '13, 21:21, 2013-10-16 21:21
  • 1
  • 2