IOS හි තත්ව තීරුවේ පෙළ වර්ණය වෙනස් කරන්නේ කෙසේද


997

මගේ යෙදුමට අඳුරු පසුබිමක් ඇත, නමුත් iOS 7 හි තත්ව තීරුව විනිවිද පෙනෙන බවට පත් විය. ඒ නිසා මට එහි කිසිවක් නොපෙනේ, කෙළවරේ ඇති හරිත බැටරි දර්ශකය පමණි. මුල් තිරයේ මෙන් තත්ව තීරුවේ පා color වර්ණය සුදු පැහැයට වෙනස් කරන්නේ කෙසේද?


9
මෙම සබැඳියට මෙම ගැටලුව පිළිබඳ සිත්ගන්නා තොරතුරු ඇත: doubleencore.com/2013/09/…
ඇඩ්‍රියානෝ ලූකස්

Answers:


1391
  1. සකසන්න UIViewControllerBasedStatusBarAppearanceකිරීමට YESද .plist ගොනුවේ.

  2. කළ viewDidLoadයුතු දේ අ[self setNeedsStatusBarAppearanceUpdate];

  3. පහත ක්‍රමය එකතු කරන්න:

    - (UIStatusBarStyle)preferredStatusBarStyle
    { 
        return UIStatusBarStyleLightContent; 
    }

සටහන : මෙය ඇතුළත පාලකයන් සඳහා ක්‍රියා නොකරයි UINavigationController, කරුණාකර ටයිසන්ගේ අදහස පහතින් බලන්න :)

ස්විෆ්ට් 3 - මෙය ඇතුළත පාලකයන් ක්‍රියා කරයි UINavigationController. ඔබගේ පාලකය තුළ මෙම කේතය එක් කරන්න.

// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

ස්විෆ්ට් 5 සහ ස්විෆ්ට් යූ

SwiftUI සඳහා නව ස්විෆ්ට් ගොනුවක් සාදන්න HostingController.swift

import Foundation
import UIKit
import SwiftUI

class HostingController: UIHostingController<ContentView> {
    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
}

ඉන්පසු පහත දැක්වෙන කේත රේඛා වෙනස් කරන්න SceneDelegate.swift

window.rootViewController = UIHostingController(rootView: ContentView())

වෙත

window.rootViewController = HostingController(rootView: ContentView())

78
මට පියවර 2 අවශ්‍ය නොවීය.
ජේසන් මුවර්

38
Xcode5-DP5 සමඟ iOS 7 බීටා 5 හි වැඩ කරන බවක් නොපෙනේ. කැමති ස්ටාටස්බාර්ස්ටයිල් ඇමතුමක් ගත් බවක් නොපෙනේ.
wilsontgh

18
UIViewControllerBasedStatusBar පෙනුම Xcode 5 GM බීජයේ පාලක පාදක තත්ව තීරු පෙනුම ලෙස වෙනස් කර ඇත
parilogic

42
Xcode GM බීජ සඳහා පිළිතුර ලැබුණි: 1. Info.plist හි පාලක-පාදක තත්ව තීරු පෙනුම අංක 2 ලෙස තබන්න.
parilogic

101
UINavigationController යනු විශේෂ අවස්ථාවකි, ඉහත ක්‍රියා නොකරනු ඇත. මේ ගැන මගේ හිස සීරීමට පැය ගණනාවක් ගත කළා. විසඳුම සඳහා මෙහි බලන්න: stackoverflow.com/a/19513714/505457
ටයිසන්

849

විකල්පයක් ලෙස, ඔබට දර්ශන-පාලක පාදක තත්ව තීරු පෙනුමෙන් ඉවත් විය හැකිය:

  1. සකසන්න View controller-based status bar appearanceකිරීමට NOඔබේInfo.plist .
  2. අමතන්න [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

සටහන: මෙම ක්‍රමය iOS9 හි ඉවත් කර ඇත. භාවිතා preferredStatusBarStyleවෙනුවට UIViewController මත. ( ඇපල් සංවර්ධක පුස්තකාලය බලන්න )


16
මෙය වඩා හොඳ හා පහසු මාර්ගයකි.
මික් බර්න්

229
කේත කිරීමට අවශ්‍ය නැත. ඒ සියල්ල ප්ලයිස්ට් එකෙන් කළ හැකිය: (1) “පාලක පාදක තත්ව තීරු පෙනුම” NO ලෙස සකසන්න (2) “තත්ව තීරු විලාසය” “පාරාන්ධ කළු විලාසිතාව” ලෙස සකසන්න. (අමු අගයන් වන්නේ UIViewControllerBasedStatusBarAppearance -> NO සහ UIStatusBarStyle -> UIStatusBarStyleBlackOpaque)
SwiftArchitect

3
මෙය ක්‍රියාත්මක කිරීම සඳහා ඔබ අදාළ info.plist අගය NO ලෙස සැකසිය යුතු බව සලකන්න .
අභි බෙකර්ට්

9
oth ගොතික් දේව්: නියම ඇල්ලීම. ඔබේ පිළිතුර පිරිසිදුම බැවින් එය පිළිගනු ඇත. බාර් ස්ටයිල් සඳහා සැහැල්ලු විකල්පය විය හැකිය: UIStatusBarStyleLightContent
benka

10
මෙම ක්‍රමය iOS 9 හි ඉවත් කර ඇත.
lostAtSeaJoshua

440

කිසිදු කේත රේඛාවක් ලිවීමෙන් තොරව ඔබට මෙය කළ හැකිය!
සමස්ත යෙදුම හරහා තත්ව තීරුවේ පා color වර්ණය සුදු කිරීමට පහත සඳහන් දෑ කරන්න

ඔබ ප්‍රක්ෂේපණ ගොනුව:

  • තත්ව තීරු විලාසය: Transparent black style (alpha of 0.5)
  • පාලකය මත පදනම් වූ තත්ව තීරු පෙනුම බලන්න: NO
  • තත්ව තීරුව මුලින් සැඟවී ඇත: NO

12
දේවල් වෙනස් වී ඇත්දැයි මම නොදනිමි, නමුත් UIStatusBarStyleLightContent අගය XCode විසින් හඳුනාගෙන නොමැති අතර කිසිදු ලේඛනයක දක්නට නොමැත ... එය ක්‍රියාත්මක වන බවක් පෙනෙන්නට තිබුණද.
නේතන් එච්

5
මෙයද ස්ප්ලෑෂ් තිරය මත වෙනස් කර ඇති අතර එය නාවිකයා මත තැබීමෙන් පමණක් ... කුඩෝස්!
viniciusnz

3
නිසැකවම මෙය සිදු කිරීමට පහසුම ක්‍රමය වන අතර සඳහන් කළ පරිදි ස්ප්ලෑෂ් තිරයේ ද ක්‍රියා කරයි.
වොන්ඩර්ස්

4
නමින් කිසිවක් නොවේ UIStatusBarStyleLightContentතුළ plist infoවුවද මෙහි Transparent Blackඑකම උපක්රමය කරන්න වනු ඇත :) ප්ලස්, ඔබ එකතු කිරීමට අවශ්ය View controller-based status bar appearanceඑය මුලින් එහි නෑ ලෙස එය සියලු ඔබට වැඩ කිරීමට එය ලබා ගැනීමට අවශ්ය දේ :)
user1949873

45
මා වැනි කම්මැලි අය සඳහා, පිටපත් කර අතීතයෙන් away<key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>UIViewControllerBasedStatusBarAppearance</key> <false/>
ඇඩම් වේට්

241

සටහන: ඉහළට ඔසවා ඇති බොහෝ පිළිතුරු iOS 7/8 සඳහා ක්‍රියා නොකරයි

Info.plist හි 'පාලකය මත පදනම් වූ තත්ව තීරු පෙනුම' NO ලෙස සකසන්න

AppDelegate එකතු කිරීමේදී

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

වෙත

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

මෙම විසඳුම iOS 7/8 සඳහා ක්‍රියා කරයි


10
IOS 9 හි ඉවත් කර ඇත .: - /
sudo

113

මට නම්, අනෙක් පිළිතුරු වල (සහ වෙනත් ප්‍රභවයන්ගෙන් / ප්‍රලේඛන වලින්) සියල්ල භාවිතා කිරීමෙන් කිසිවක් සිදු නොවීය. උදව් කළේ XIB හි සංචාලන තීරු විලාසය "කළු" ලෙස සැකසීමයි. මෙය කිසිදු කේතයක් නොමැතිව පෙළ සුදු බවට වෙනස් කළේය.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


3
උපාංගයේ ඉහත පිළිතුරු කිසිවක් මා වෙනුවෙන් වැඩ කළේ නැත. WHITE හි status_bar පා have ය ලබා ගැනීම සඳහා ඔබ navigation_bar BLACK ලෙස සැකසිය යුතු නව පද්ධතිය පිළිබඳ සෑම දෙයක්ම එය කියනු ඇතැයි මම සිතමි .
MrTJ

2
බොහෝ දේ සමඟ පොරබදමින්, වැඩ කිරීම අවසන් වූයේ මෙයයි. ශෛලිය පෙරනිමියට සකසා ඇත. මෙය වෙනස් කර අනෙක් සියලුම තත්ව තීරුව ඉවත් කර එය ක්‍රියාත්මක වේ.
ගුජමින්

1
ඔබගේ සියලුම nav බාර් IB හි සැකසීමට ඔබට අවශ්‍ය නැතිනම් ඔබට එහි පෙනුම ප්‍රොක්සියද සැකසිය හැකිය. [[UINavigationBar පෙනුම] setBarStyle: UIBarStyleBlack];
ස්ටීව් මෝසර්

3
IOS7 කතන්දර පුවරුවේ මා වෙනුවෙන් ක්‍රියා නොකරයි. පෙනෙන ආකාරයට මෙය වෙනත් දෙයක් අතුරු ආබාධයක් විය හැකිද?
ක්‍රිස්

ඉහත පිළිතුරු සියල්ලම මා වෙනුවෙන් වැඩ කර නැති බව මම තහවුරු කිරීමට කැමැත්තෙමි. රූපය අනුගමනය කිරීමෙන්, තත්ව තීරු පෙළ සුදු පැහැයක් ගනී. නමුත් මම නැවත කියමි, Xcode 6.2 සහ iOS 8.2 සහිත ඉහත පිළිතුරු ක්‍රියාත්මක නොවේ.
මාකස්

98

ඒ කිසිවක් මට වැඩ කළේ නැත, එබැවින් මෙන්න වැඩ කරන විසඳුමක් ...

තුළ Info.plist, පේළියක් එක් කරන්න:

UIViewControllerBasedStatusBarAppearance, සහ අගය සකසන්න NO.

ඉන්පසු AppDelegate in didFinishLaunchingWithOptions , මෙම පේළි එක් කරන්න:

[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleLightContent];

ඉහත විසඳුම නොතිබූ අතර මෙම විසඳුම මා වෙනුවෙන් ක්‍රියාත්මක විය.
ජෝන් කොන්ටරිනෝ

නියමයි නමුත් මෙම UIViewControllerBasedStatusBarAppearance එකටම පරිවර්තනය වේ: පාලක පාදක තත්ව තීරු පෙනුම ස්වයංක්‍රීයව බලන්න :)
අභිෂේක් තප්ලියල්

65

මේ සඳහා ඔබට කිසිදු කේතයක් කිරීමට අවශ්‍ය නැත

Info.plist හි "පාලක පාදක තත්ව තීරු පෙනුම" යතුර පහත පරිදි එකතු කළ යුතුය: රූප විස්තරය මෙහි ඇතුළත් කරන්න

සහ එහි අගය වර්ගය බූලියන් ලෙස සහ අගය NO ලෙස සකසන්න. ඉන්පසු ව්‍යාපෘති සැකසීම් මත ක්ලික් කරන්න, ඉන්පසු සාමාන්‍ය ටැබ් එක මත ක්ලික් කරන්න සහ යෙදවුම් තොරතුරු යටතේ කැමති තත්ව තීරු විලාසය සකසන්න .ලයිට් පහත පරිදි:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

ඒක තමයි.


1
මම ඔබේ ප්‍රවේශයට කැමතියි! මගේ නඩුවේදී, මම උත්සාහ කළේ තත්ව තීරුවේ ශෛලිය පූර්ණ තිරයේ (w / o සංචාලන තීරුව) ඇති විට පමණක් සැහැල්ලු වන්නේ කෙසේද යන්න සොයා ගැනීමටයි. එවිට, අනෙක් සියලුම තිර එකම ආලෝක ශෛලියට ගැලපෙන බව මට වැටහුණි. එබැවින් හොඳ විසඳුමක් වන්නේ සියල්ල සඳහාම සකස් කිරීමයි. ස්තූතියි! (:
ඊගෝර් ඩි ලොරෙන්සි

ඔබගේ යෙදුම ක්‍රියාත්මක වන අතරතුර මෙය වෙනස් කිරීමට ඔබට අවශ්‍ය නැතිනම්. මෙය හොඳම ප්‍රවේශයයි.
මයිකල්

මෙම ප්‍රවේශය නිසැකවම ක්‍රියාත්මක වන නමුත් එය iPad හි අමුතු ප්‍රශ්නයක් හඳුන්වා දෙයි. ඔබගේ යෙදුම ගැඹුරු සබැඳි සඳහා සහය දක්වන්නේ නම් සහ ඔබ ගැඹුරු සබැඳිය හරහා යෙදුම දියත් කරන විට තත්ව තීරුවේ දිස්වන පසු සබැඳිය අතුරුදහන් වේ.
චිත්‍රාන්ෂු අතානා

හොඳම හා වඩාත්ම සරල එකක්.
අමිත් කුමාර්

මට හොඳම විසඳුම: ඩී
ගෝල්ඩ් චිකන්

48

පහත සඳහන් පියවර දෙකක් පමණි:

පියවර 1:

හි තොරතුරු පටිත්ත යටතේ project target, පේළිය එක් කරන්න:

UIViewControllerBasedStatusBarAppearance, අගය නියම කරන්න NO .

පියවර 2:

ව්යාපෘතියේ AppDelegate.m:

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

4
මම "යෙදුමේ"
පරාමිතිය

තිත් අංකනය සහ එය පරිපූර්ණ වනු ඇත;)
රිවේරා

43

මෙය ගෝල්ඩන් මාස්ටර් iOS 7 සහ එක්ස්කෝඩ් 5 ජීඑම් බීජ සහ iOS7 එස්ඩීකේ 2013 සැප්තැම්බර් 18 වන දින නිකුත් කරන ලදි (අවම වශයෙන් සංචාලන පාලකය සඟවා ඇත):

  1. සකසන්න the UIViewControllerBasedStatusBarAppearanceකිරීමට NOතුළ Info.plist.

  2. දී ViewDidLoadක්රමය හෝ ඔබ වෙනස් තත්ව තීරුව ශෛලිය ඕනෑ කොහෙද? ඕනෑම තැනක,: [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


1
UIViewControllerBasedStatusBarAppearance පෙරනිමි අගයන් ඔව් ලෙස පෙනේ. "නව දර්ශන පාලක-පාදක තත්ව තීරු කළමනාකරණ පද්ධතිය භාවිතා කිරීම සඳහා යෙදුම් පෙරනිමිය. මෙයින් ඉවත් වීමට, UIViewControllerBasedStatusBarAppearance යතුර සඳහා NO හි අගයක් ඔබේ Info.plist වෙත එක් කරන්න." [ bgr.com/2013/09/10/ios-7-gm-change-log-release-notes/]
Zsolt

1
ඔව් !! UIViewControllerBasedStatusBar පෙනුම NO ලෙස සැකසීමෙන් පසුව, තත්ව තීරුව දර්ශන තුළ සැඟවෙයි.
CashLee 李秉骏

එය සියලු viewdidload සඳහා යෙදිය යුතුද?
ආර්න්ලී විස්කේනෝ

ඔබට එය appDelegates didFinishLoading ක්‍රමයට එකතු කළ හැකිය. නැතහොත් පළමු දර්ශනය තුළ viewDidLoad ක්‍රමය වෙනස් කිරීමට ඔබට අවශ්‍ය නැතිනම්.
ඩෙනිස් ෆෙඩොටොව්ස්

1
නියමයි, මේ කෙනා වැඩේ කළා. සරල හා විශිෂ්ට කේතීකරණය.
ෆෙලිපේ

32

ඔබේ UIViewController UINavigationController තුළ තිබේ නම් ඔබට BarStyle සැකසිය යුතුය:

-[UINavigationBar setBarStyle:UIBarStyleBlack]

මුල් පිළිතුර මෙහි ඇත

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


නැත, මෙය හුදෙක් සංචාලන තීරුවේ වර්ණය තත්ව තීරුවේ පෙළ වර්ණයට සමාන කරයි. මෙය ගැටළුව සඟවයි, එය විසඳන්නේ නැත!
wpearse

2
දර්ශනයේ UINavigationController එකක් තිබේ නම් iOS7 හි තත්ව තීරුව UINavigationBar අනුකරණය කරයි, එබැවින් බොහෝ අවස්ථාවලදී මෙය නිවැරදි පිළිතුරයි.
jonstaff

29

ඔබට අතුරුමුහුණත් හරහා සාදන ලද කාවැද්දූ සංචාලන පාලකයක් තිබේ නම් , ඔබේ සංචාලන පාලකය කළමනාකරණය කරන පන්තියක පහත සඳහන් දෑ සැකසීමට වග බලා ගන්න:

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
} 

ඔබට අවශ්‍ය වන්නේ එය පමණි.


ස්ටෝරිබෝඩ්-අඩු සහ xib-less යෙදුමක මා වෙනුවෙන් වැඩ කළ එකම විසඳුම මෙයයි. IB නොවන පරිශීලකයින් සඳහාද ප්‍රයෝජනවත් විය යුතුය.
ජොනී ස්පාර්ක්ස්

2
එක් එක් දර්ශන පාලකයේ ශෛලිය වෙනස් ලෙස සැකසීමට අවශ්‍ය වූ විට මෙය මට පරිපූර්ණ විය
බෙන්

ඔව් ලෙස සකසා ඇති "පාලක පාදක තත්ව තීරු පෙනුම" රඳවා ගැනීමට ඔබට අවශ්‍ය නම්, මෙය යා යුතු මාර්ගයයි. ස්තූතියි!
ක්ලවුඩ්සර්ෆින්

28

IOS 7 යෙදුමක් සඳහා මම ස්විෆ්ට් ව්‍යාපෘතියක Xcode 6 බීටා 5 භාවිතා කරමි .

මෙන්න මම කළ දේ, එය ක්‍රියාත්මක වේ:

info.plist:

රූප විස්තරය මෙහි ඇතුළත් කරන්න


2
ස්තූතියි, එය ඔබගේ විසඳුම IOS7 හි නවතම වාක්‍යය සමඟ පමණක් ක්‍රියා කරන බව පෙනේ
Dekel Maman

මෙම විසඳුම යෙදුම පූරණය කරන අතරතුර දියත් කිරීමේ තිරයේ තත්ව තීරුව පෙන්වයි.
ජුවාන් බෝරෝ

XCode 7.1 හි මගේ ගැටළු විසඳීය. නවතම අනුවාදය. යමක් ක්‍රියාත්මක කිරීම සඳහා ඇපල් යුවළට තීරණාත්මක කොටස් කිහිපයක් අමතක විය. යළි.
මයිකල්

22

AppDelegate.m හි, පහත සඳහන් දෑ එක් කරන්න.

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

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

} 

ලැයිස්තු ගොනුවේ, 'පාලක පාදක තත්ව තීරු පෙනුම බලන්න' යන්න NO ලෙස සකසන්න.


20

Appdelegate හි සරලව

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

5
ඇත්ත වශයෙන්ම මට වැඩ කළ එකම සහ එකම පිළිතුර.
විම් හැන්ස්ට්‍රා

6
නමුත් මේ සඳහා අප විසින් පාලක පාදක තත්ව තීරු පෙනුම ඉවත් කළ යුතුය .
iamyogish

IOS9 හි අතහැර දමා ඇත
ඩිමිට්‍රිස්

20

හොඳයි, මේක ඇත්තටම මට කේක් කෑල්ලක් වගේ වැඩ කරනවා.

ඔබගේ යෙදුමට යන්න info.plist.

  1. set View controller-based status bar appearanceකිරීමටNO
  2. set Status bar styleකිරීමටUIStatusBarStyleLightContent

ඉන්පසු ඔබගේ යෙදුමේ නියෝජිතයා වෙත ගොස් ඔබේ කවුළුවල 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];
}

බිංගෝ. ඒක මට වැඩක්.


1
මම හිතන්නේ මෙය නිවැරදි පිළිතුරයි (ප්ලයිස්ට් එකේ කොටස) ... ඇයි මම ඩිඩ්ෆිනිෂ්ලැන්චින් විතෝප්ෂන්ස් මත ස්ථිතික කේතයක් එකතු කරන්නේ ... මුළු යෙදුමටම එකම වර්ණයක් අවශ්‍ය නම් මෙය නිවැරදි ක්‍රමයයි
user2387149

20
  1. වෙත යන්න Project-> Target,

  2. අනතුරුව ඔහු Status Bar Styleවෙත Light. එය දියත් කිරීමේ තිරයෙන් තත්ව තීරුව සුදු කරයි. ව්‍යාපෘති සැකසුම

  3. ඉන්පසු in View controller-based status bar appearanceට සමාන ලෙස සකසන්න .NOInfo.plist


2
ඔබ සත්‍ය View controller-based status bar appearance equalලෙස සැකසූ දෙවන කොටස NOවූයේ මා අතපසු වූ කොටසයි . ස්තූතියි
විල්

19

තොරතුරු වෙනස් කිරීම PLIST පියවර 2 කින් ස්විෆ්ට් 3 හි ඉතා පහසුය. ඔබගේ info.plist වෙත ගොස් යතුර View controller-based status bar appearance"නැත" ලෙස වෙනස් කරන්න. ඉන්පසු Appdelegate හි මෙම රේඛාව didfinishlaunchingwithoptions ක්‍රමයට එක් කරන්න

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        UIApplication.shared.statusBarStyle = .lightContent
        return true
    }

මෙය iOS9 හි ඉවත් කර ඇත. දැන් ඔබ කළ යුත්තේ rootviewcontroller හි මෙම දේපල අභිබවා යාමයි

මෙය iOS 9 හි අතහැර දමා ඇත. මෙය rootviewcontroller හි කළ යුතුය

override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
 }

1
ඒක නියමයි සහෝදරයා :) ස්තූතියි.
නරේෂ් රෙඩ්ඩි එම්

මෙය iOS 9 හි අතහැර දමා ඇත. මෙය කළ යුත්තේ rootviewcontroller override var කැමති ස්ටැටස්බාර්ස්ටයිල්: UIStatusBarStyle {return .lightContent}
James Rochabrun

17

ඇපල් සංවර්ධක ප්‍රලේඛනය මගින් විස්තර කර ඇති පරිදි, තත්ව තීරුවේ පෙනුම තීරණය කිරීමට iOS 7 තනි දර්ශන පාලකයන්ට ඉඩ දෙයි:

යෙදුම ක්‍රියාත්මක වන විට තත්ව තීරුවේ ශෛලිය සැකසීමේ හැකියාව iOS 7 දර්ශන පාලකයන්ට ලබා දෙයි. තත්ව තීරු විලාසය ගතිකව වෙනස් කිරීමට හොඳ ක්‍රමයක් නම් ක්‍රියාත්මක කිරීම preferredStatusBarStyleසහ සජීවිකරණ වාරණයක් තුළ the තත්ව තීරුවේ පෙනුම සහ ඇමතුම යාවත්කාලීන කිරීමයි setNeedsStatusBarAppearanceUpdate.

ගෝලීය වශයෙන් තත්ව තීරුවේ පෙනුම සැකසීම පියවර දෙකක ක්‍රියාවලියකි.

පළමුවෙන්ම, ඔබට දර්ශන තලයේ පෙනුම බැලීමේ පදනම මත සැකසීමට අවශ්‍ය නැති බව ඔබට iOS වෙත පැවසිය යුතුය.

එවිට ඔබ වගකීම භාරගෙන නව ගෝලීය තත්ව තීරු විලාසය සැකසිය යුතුය.

බැලීමෙන් බැලීමේ තත්ව තීරු පාලනය අක්‍රිය කිරීමට, ඔබට View controller-based status bar appearanceදේපල සැකසිය යුතුයInfo.plist .

ව්‍යාපෘති නැවිගේටරය විවෘත කර ඔබගේ iOS යෙදුම සඳහා ව්‍යාපෘතිය තෝරන්න, පසුව තොරතුරු පටිත්ත තෝරන්න.

පේළියක සැරිසරන්න, ඉන්පසු ඔබට නව දේපලක් එක් කිරීමට පෙනෙන ප්ලස් ලකුණ ක්ලික් කරන්න .plist .

View controller-based status bar appearanceයතුරු ක්ෂේත්‍රය තුළට ඇතුළු වන්න , ඉන්පසු ටයිප් ක්ෂේත්‍රය සකසා ඇති බවට වග බලා ගන්න Boolean. අවසාන වශයෙන්, ඇතුළත් කරන්නNO අගය ක්ෂේත්‍රය .

තත්ව තීරුව සඳහා ගෝලීය ශෛලියක් සැකසීමට, තොරතුරු ටැබය යටතේ යතුරක් Status bar style, වර්ගයක් Stringසහ වටිනාකමක් සහිත තවත් දේපලක් එක් කරන්නOpaque black style .

මෙන්න තව ටිකක් විස්තර සහ නියැදි කේත සහිත බ්ලොග් සටහනක්:

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


ස්තූතියි. මගේ ගැටළුව වූයේ "පාලක මත පදනම් වූ තත්ව තීරු පෙනුම" වර්ගය ස්ට්‍රිං ලෙස සකසා ඇති බව මා නොදැකීමයි. .Plist ගොනුව "අතින්" සංස්කරණය කිරීම සහ බූලියන් අගය ඇතුළත් කිරීමෙන් දේවල් ඉවත් විය.
ක්‍රිස් ප්‍රින්ස්

12

අමතර යමක් කිරීමට අවශ්‍ය නැත, මෙම කේතය ඔබේ දර්ශන පාලකයේ ලියා ස්ථායී තීරු වර්ණය සුදු පැහැයක් ගන්න

- (UIStatusBarStyle)preferredStatusBarStyle{return UIStatusBarStyleLightContent;}

ක්‍රියාත්මක කිරීමෙන් පසු මෙය ViewController.m යටතේ තබන්න. එය පහසුම හා විශිෂ්ට ලෙස ක්රියා කරයි! ස්තූතියි මෝහිත්!
ෆිල් මල්කින්ස්

12

Xcode GM බීජ සඳහා පිළිතුර යාවත්කාලීන කරන ලදි:

  1. දී Info.plistPut View controller-based status bar appearanceලෙසNO

  2. ව්යාපෘතියේ, සකසන්න:

    රූප විස්තරය මෙහි ඇතුළත් කරන්න

  3. ViewDidLoad හි:

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


එය ටැබ් තීරුව වෙනස් කළා මිස මට තත්ව තීරුව නොවේ.
කීත්

11

මම හිතන්නේ සියලුම පිළිතුරු ඇත්ත වශයෙන්ම ගැටලුව යොමු නොකරයි, මන්ද ඒවා සියල්ලම විශේෂිත අවස්ථා වල ක්‍රියාත්මක වන බැවිනි. නමුත් ඔබට සියලු අවස්ථා ආවරණය කිරීමට අවශ්‍ය නම් කරුණු පහත දැක්වේ.

ඔබට අවශ්‍ය වන්නේ තත්ව තීරු ආලෝක ශෛලිය මත පදනම්ව මෙම කරුණු 3 නිතරම මතකයේ තබා ගත යුතුය:

1) ඔබට දියත් කිරීමේ තිරයේ හෝ වෙනත් ස්ථානයක තත්ව තීරුව අවශ්‍ය නම්, ඔබට එය පාලනය කළ නොහැකි (දර්ශන පාලකයන් තුළ නොව, පද්ධති පාලනය කරන සමහර අංග / දියත් කිරීමේ තිරය වැනි අවස්ථා) ඔබ ඔබේ ව්‍යාපෘති සැකසුම් වෙත යන්න ව්‍යාපෘති සැකසුම්

2) ඔබට සංචාලන පාලකයක් තුළ පාලකයක් තිබේ නම් ඔබට එය අතුරු මුහුණත සාදන්නා තුළ පහත පරිදි වෙනස් කළ හැකිය:

අ) ඔබේ සංචාලන පාලකයේ සංචාලන තීරුව තෝරන්න ඔබගේ සංචාලන පාලකයේ සංචාලන තීරුව තෝරන්න

b) ඉන්පසු සංචාලන තීරුවේ ශෛලිය "කළු" ලෙස සකසන්න, මන්ද මෙයින් අදහස් කරන්නේ ඔබේ තත්ව තීරුව යටතේ "කළු" -> අඳුරු පසුබිමක් ඇති බැවින් එය තත්ව තීරුව සුදු පැහැයට සකසනු ඇති බවයි.

රූප විස්තරය මෙහි ඇතුළත් කරන්න

නැතහොත් එය පහත පරිදි කේතයෙන් කරන්න

navigationController?.navigationBar.barStyle = UIBarStyle.Black

3) ඔබට පාලකය තනිවම තිබේ නම් එයටම ආවේණික තීරු ශෛලියක් තිබිය යුතු අතර එය UINavigationController ලෙස සමහර බහාලුම් ව්‍යුහයට ඇතුළත් කර නොමැත.

පාලකය සඳහා කේත තීරුවේ තත්ව තීරු විලාසය සකසන්න:

තත්ව තීරු විලාසය කේතයෙන් සැකසීම


කරුණාකර ඔබේ නඩුව පැහැදිලි කරන්න, මම උදව් කිරීමට උත්සාහ කරමි
ෆෝක්ස්

1
මට Plus එකට StatusBarIsIntiallyHidden = NO මෙන්ම ViewControllerBasedApplicationStatusBarAppearnce = NO ද එකතු කිරීමට සිදු විය. පළමු කොටස භාවිතා කරමින් මෙය ක්‍රියාත්මක වේ
මයිකල්

පළමු පැටවීමේ දර්ශන පාලකයට සමාන “අනුරුවක්” ඇති ස්ප්ලෑෂ් තිරයක් ඔබ සතුව තිබේද? තවද, ඔබේ ඉලක්කයේ "තොරතුරු" කොටසේදී ඔබට "තත්ව තීරුව සඟවන්න" ව්‍යාජ ලෙස සැකසීමට උත්සාහ කළ හැකි අතර ඔබේ .plist සමඟ ගනුදෙනු කිරීමෙන් වළකින්න. "StatusBarIsIntallyHidden" ධජය
ෆෝක්ස්

මම නැහැ. එය ජනනය කරන ලද පෙරනිමි xib භාවිතා කරයි.
මයිකල්

XCode 7.1 හි නැවුම් ව්‍යාපෘතියක් නිර්මාණය කිරීමේදී මට ඇත්ත වශයෙන්ම මෙම ගැටළුව හමු විය, එබැවින් එය එතරම් අමුතු දෙයක් යැයි මම සිතුවෙමි
මයිකල්

10

සරලව ඇමතීම

[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];

තුළ

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

AppDelegateiOS7 හි මගේ කෘතිවල ක්‍රමය මට විශිෂ්ටයි.


වාව්, ලොට්සා කපටි නමුත් මෙම පිළිතුර මට ප්‍රයෝජනවත් විය. මම Xcode 6 සහ iOS 8 SDK
ඊතන් පාකර්

1
විශිෂ්ටයි, iOS 9 සමඟ මා වෙනුවෙන් වැඩ කරයිView controller-based status bar appearance = NO
dstudeba

9

මෙය iOS 7 UI සංක්‍රාන්ති මාර්ගෝපදේශයෙහි ලේඛනගත කර ඇති අතර, ඔබට කෙලින්ම ප්‍රවේශ වීමට ඇපල් සංවර්ධක හැඳුනුම්පතක් අවශ්‍ය වේ. අදාළ උපුටා ගැනීම:

තත්ව තීරුව පාරදෘශ්‍ය බැවින් එය පිටුපස ඇති දර්ශනය පෙන්නුම් කරයි. [...] UIStatusBarStyleතත්ව තීරුවේ අන්තර්ගතය අඳුරු හෝ සැහැල්ලු විය යුතුද යන්න සඳහන් කිරීමට නියතයක් භාවිතා කරන්න :

UIStatusBarStyleDefaultඅඳුරු අන්තර්ගතය පෙන්වයි. [...]

UIStatusBarStyleLightContentසැහැල්ලු අන්තර්ගතය පෙන්වයි. තත්ව තීරුව පිටුපස අඳුරු අන්තර්ගතයන් ඇති විට භාවිතා කරන්න.

උනන්දුවක් දැක්විය හැකි:

IOS 7 හි, ඔබට තනි වීව් පාලකයෙකුගෙන් තත්ව තීරුවේ ශෛලිය පාලනය කළ හැකි අතර යෙදුම ක්‍රියාත්මක වන විට එය වෙනස් කළ හැකිය. මෙම හැසිරීම තෝරා UIViewControllerBasedStatusBarAppearanceගැනීමට, යෙදුමක Info.plistගොනුවකට යතුර එකතු කර එහි අගය දෙන්න YES.

ඔබගේ ඇපල් සංවර්ධක හැඳුනුම්පත සමඟ නැවත පිවිසිය හැකි ලේඛනය දෙස බැලීමට මම අනිවාර්යයෙන්ම නිර්දේශ කරමි.


3
මම දැනටමත් උත්සාහ කර ඇත [application setStatusBarStyle: UIStatusBarStyleLightContent]; නමුත් ඇත්ත වශයෙන්ම කිසිවක් වෙනස් නොවේ, පෙළ වර්ණය තවමත් කළු ය
ඔලෙක්සැන්ඩර් වේරෙම්චුක්

මම තවත් උදව්වක් කිරීමට කැමතියි, නමුත් මා පවසන පරිදි, යෝජනා කළ යුතු දේ දැන ගැනීමට iOS සංවර්ධන ක්‍රියාවලිය ගැන මට හුරුපුරුදු නැත. සමාවන්න!
ආරොන් මිලර්

1) UIViewControllerBasedStatusBar පෙනුම පෙනුමෙහි YES ලෙස සකසන්න 2) viewDidLoad කරන්න [self setNeedsStatusBarAppearanceUpdate]; 3) පහත දැක්වෙන ක්‍රමය එක් කරන්න :-( UIStatusBarStyle) කැමති ස්ටැටස්බාර්ස්ටයිල් {ආපසු UIStatusBarStyleLightContent; }
පීටර් බී. ක්‍රාමර්

9

මෙන්න තත්ව තීරුව වෙනස් කිරීම පිළිබඳ ඇපල් මාර්ගෝපදේශ / උපදෙස් . තත්ව තීරුවේ අවසර දී ඇත්තේ අඳුරු සහ ආලෝකය (අතර & කළු) පමණි.

මෙන්න - තත්ව තීරු විලාසය වෙනස් කරන්නේ කෙසේද:

ඔබ මාලාවක් තත්ව තීරුව ශෛලිය කිරීමට අවශ්ය නම්, යෙදුම් මට්ටම ය අනතුරුව UIViewControllerBasedStatusBarAppearanceකිරීමට NOඔබේ '.plist' ගොනුවේ.

තත්ව තීරු ශෛලිය සැකසීමට ඔබට අවශ්‍ය නම්, පාලක මට්ටමින් මෙම පියවර අනුගමනය කරන්න:

  1. සකසන්න UIViewControllerBasedStatusBarAppearanceකිරීමට YESතුළ.plist ඔබ UIViewController මට්ටමේ පමණක් කට්ටලයක් තත්ව තීරුව ශෛලිය කිරීමට අවශ්ය නම්, ගොනු.
  2. ViewDidLoad add function - setNeedsStatusBarAppearanceUpdate

  3. ඔබගේ දර්ශන පාලකයේ කැමති ස්ටේටස්බාර්ස්ටයිල් අභිබවා යන්න.

-

override func viewDidLoad() {
    super.viewDidLoad()
    self.setNeedsStatusBarAppearanceUpdate()
}

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

තත්ව තීරු ශෛලියේ සැකසුම් මට්ටමට අනුව .plist හි අගය සකසන්න. රූප විස්තරය මෙහි ඇතුළත් කරන්න


යෙදුම් දියත් කිරීමේදී හෝ ඔබගේ දර්ශන පාලකයේ viewDidLoad අතරතුරදී තත්ව තීරුව සඳහා පසුබිම් වර්ණය වෙනස් කිරීමට / සැකසීමට සමහර උපක්‍රම මෙන්න.

extension UIApplication {

    var statusBarView: UIView? {
        return value(forKey: "statusBar") as? UIView
    }

}

// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
        return true
    }
}


or 
// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
    }

}



ප්‍රති result ලය මෙන්න:

රූප විස්තරය මෙහි ඇතුළත් කරන්න


8

මම සමහර දේවල් වෙනස් ලෙස කළ අතර එය මට වැඩ කරයි.

කේතයේ කිසිදු වෙනසක් නොමැතිව, මම මගේ .plist ගොනුව මේ ආකාරයට වින්‍යාස කළෙමි:

  • පාලකය මත පදනම් වූ තත්ව තීරු පෙනුම> නැත
  • තත්ව තීරු විලාසය> UIStatusBarStyleLightContent (සරල නූල)

එය උපකාරී වේ යැයි මම බලාපොරොත්තු වෙමි.

සංස්කරණය කරන්න

එක් එක් දර්ශන පාලකය සඳහා මම ස්ටෝරිබෝඩ් එකේ “තත්ව තීරුවේ” අනුකම්පිත ප්‍රමිතික දේපල “අනුමාන” සිට “සැහැල්ලු අන්තර්ගතය” දක්වා වෙනස් කරමි.


8

ඔබට ස්විෆ්ට් සමඟ එකම ප්‍රති result ලය අවශ්‍ය නම්, ඔබට මෙම කේතය ඔබගේ AppDelegate.swift ගොනුවේ භාවිතා කළ හැකිය:

UINavigationBar.appearance().barStyle = .BlackTranslucent

ඔබගේ තත්ව තීරුවේ පෙළ සුදු වනු ඇත :-)!


8

ඔබට තවමත් View controller-based status bar appearanceඔව් ලෙස සකසා ඇති info.plist හි භාවිතා කිරීමට අවශ්‍ය නම් , එයින් අදහස් කරන්නේ ඔබට එක් එක් දර්ශන පාලකය සඳහා තත්ව තීරුව වෙනස් කළ හැකි බවයි, ViewDidLoad හි තත්ව තීරුවේ සුදු පා text සඳහා පහත සඳහන් දෑ භාවිතා කරන්න:

[[[self navigationController] navigationBar] setBarStyle:UIBarStyleBlackTranslucent];

සංචාලන තීරුව! = තත්ව තීරුව.
මයිකල් පීටර්සන්

... ඔබ එය උත්සාහ කළාද? (ඔව්, තත්ව තීරුව සඳහා)
eirik

7

සාරාංශ කිරීමට, ඔබේ ව්‍යාපෘතිය සංස්කරණය Info.plistකර එකතු කරන්න:

View controller-based status bar appearance : NO

Status bar style : Opaque black style

හෝ ඔබට අමු යතුරක් / වටිනාකමක් තිබේ නම්

UIViewControllerBasedStatusBarAppearance : NO

UIStatusBarStyle : Opaque black style


මෙය මට සහ preferredStatusBarStyleඑය ගෝලීයව වින්‍යාසගත කළ හැකි බැවින් භාවිතා කිරීමට වඩා අඩු
කරදරයකි

7

ලැයිස්තුවේ, මෙය එක් කරන්න:

  • තත්ව තීරු විලාසය: UIStatusBarStyleLightContent
  • පාලකය මත පදනම් වූ තත්ව තීරු පෙනුම බලන්න: NO

7

info.plist දී ක්ෂේත්රයේ අගය නැත සකස් දැක්ම පාලකය මත පදනම් තත්ව තීරුව පෙනුම සහ කුලකය තත්වතීරුව > සාමාන්ය සැකසුම ඉලක්කය විලාසිතා ආලෝකය.


2
ජයග්‍රාහී කුකුළු මස් රාත්‍රී ආහාරය
tommybananas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.