ios आईओएस 7 में स्टेटस बार टेक्स्ट कलर कैसे बदलें




ios7 statusbar (24)

मेरे आवेदन में एक गहरा पृष्ठभूमि है, लेकिन आईओएस 7 में स्टेटस बार पारदर्शी बन गया। इसलिए मैं वहां कुछ भी नहीं देख सकता, केवल कोने में हरी बैटरी संकेतक। मैं स्टेटस बार टेक्स्ट रंग को सफेद स्क्रीन पर कैसे बदल सकता हूं जैसे कि यह होम स्क्रीन पर है?


निम्नलिखित के रूप में केवल दो कदम:

चरण 1:

project target के जानकारी टैब के तहत, पंक्ति जोड़ें:

UIViewControllerBasedStatusBarAppearance , सेट मान NO

चरण 2:

परियोजना में AppDelegate.m :

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

आप कोड की किसी भी पंक्ति को लिखने के बिना ऐसा कर सकते हैं!
पूरे ऐप के माध्यम से स्टेटस बार टेक्स्ट रंग सफेद बनाने के लिए निम्न कार्य करें

आप परियोजना प्लास्ट फ़ाइल पर:

  • स्टेटस बार शैली: Transparent black style (alpha of 0.5)
  • नियंत्रक-आधारित स्टेटस बार उपस्थिति देखें: NO
  • स्टेटस बार प्रारंभ में छिपा हुआ है: NO

एक्सकोड जीएम बीज के लिए अद्यतन उत्तर:

  1. Info.plist View controller-based status bar appearance को NO रूप में View controller-based status bar appearance

  2. परियोजना में, सेट करें:

  3. ViewDidLoad में:

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


आईओएस 7 ऐप्पल डेवलपर दस्तावेज द्वारा वर्णित अनुसार स्टेटस बार की उपस्थिति को निर्धारित करने के लिए व्यक्तिगत दृश्य नियंत्रकों को अनुमति देता है:

आईओएस 7 दृश्य नियंत्रकों को ऐप चल रहा है, जबकि स्टेटस बार की शैली को समायोजित करने की क्षमता देता है। स्टेटस बार शैली को गतिशील रूप से बदलने का एक अच्छा तरीका है setNeedsStatusBarAppearanceUpdate स्टाइल को लागू preferredStatusBarStyle और एनीमेशन ब्लॉक के भीतर-स्टेटस बार उपस्थिति को अपडेट करें और setNeedsStatusBarAppearanceUpdate अपडेट करें।

वैश्विक स्तर पर स्टेटस बार उपस्थिति सेट करना एक दो-चरणीय प्रक्रिया है।

सबसे पहले, आपको आईओएस को बताने की जरूरत है कि आप स्टेटस बार उपस्थिति को व्यू-बाय-व्यू आधार पर सेट नहीं करना चाहते हैं।

फिर आपको चार्ज करने और वास्तव में नई वैश्विक स्टेटस बार शैली सेट करने की आवश्यकता है।

व्यू-बाय-व्यू स्टेटस बार कंट्रोल को अक्षम करने के लिए, आपको Info.plist में View controller-based status bar appearance प्रॉपर्टी सेट करने की आवश्यकता होगी।

प्रोजेक्ट नेविगेटर खोलें और अपने आईओएस ऐप के लिए प्रोजेक्ट का चयन करें, फिर जानकारी टैब का चयन करें।

एक पंक्ति पर होवर करें, फिर प्लस चिह्न पर क्लिक करें जो आपके .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/


कुछ अतिरिक्त करने की ज़रूरत नहीं है, बस इस कोड को अपने व्यू कंट्रोलर में लिखें और स्टेटस बार रंग सफेद प्राप्त करें

- (UIStatusBarStyle)preferredStatusBarStyle{return UIStatusBarStyleLightContent;}

मुझे लगता है कि सभी उत्तरों वास्तव में समस्या को इंगित नहीं करते हैं क्योंकि वे सभी विशिष्ट परिदृश्यों में काम करते हैं। लेकिन अगर आपको सभी मामलों को कवर करने की ज़रूरत है तो अंक का पालन करें:

स्टेटस बार लाइट स्टाइल की आवश्यकता के आधार पर आपको हमेशा इन 3 बिंदुओं को ध्यान में रखना चाहिए:

1) यदि आपको लॉन्च स्क्रीन या अन्य स्थानों पर स्टेटस बार की आवश्यकता है, जहां आप इसे नियंत्रित नहीं कर सकते हैं (नियंत्रकों को देखने में नहीं, बल्कि कुछ सिस्टम नियंत्रित तत्व / लॉन्च स्क्रीन जैसे क्षण) तो आप अपनी प्रोजेक्ट सेटिंग्स पर जाते हैं

2) यदि आपके पास नेविगेशन नियंत्रक के अंदर नियंत्रक है तो आप इसे इंटरफ़ेस बिल्डर में निम्नानुसार बदल सकते हैं:

ए) अपने नेविगेशन नियंत्रक के नेविगेशन बार का चयन करें

बी) फिर नेविगेशन बार की शैली को "ब्लैक" पर सेट करें, क्योंकि इसका मतलब है कि आपके स्टेटस बार के नीचे एक "काला" -> अंधेरा पृष्ठभूमि होगी, इसलिए यह स्टेटस बार को सफेद पर सेट करेगा

या इसे कोड में निम्नानुसार करें

navigationController?.navigationBar.barStyle = UIBarStyle.Black

3) यदि आपके पास अकेले नियंत्रक है जिसके पास अपनी खुद की स्टेटस बार शैली की आवश्यकता है और यह कुछ कंटेनर संरचना में एम्बेडेड नहीं है, तो UINavigationController

नियंत्रक के लिए कोड में स्टेटस बार शैली सेट करें:


यह गोल्डन मास्टर आईओएस 7 और एक्सकोड 5 जीएम बीज और आईओएस 7 एसडीके में 18 सितंबर, 2013 को जारी किया गया है (कम से कम नेविगेशन नियंत्रक के साथ छिपा हुआ):

  1. Info.plist में the UIViewControllerBasedStatusBarAppearance को NO सेट करें।

  2. ViewDidLoad विधि या कहीं भी, आप स्टेटस बार शैली को कहां बदलना चाहते हैं: [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


मैं एक आईओएस 7 ऐप के लिए एक Swift प्रोजेक्ट पर Xcode 6 बीटा 5 का उपयोग कर रहा हूं।

यहां मैंने जो किया है, और यह काम करता है:

Info.plist:


यदि आपका UIViewController UINavigationController के अंदर है तो आपको बार स्टाइल सेट करना होगा:

-[UINavigationBar setBarStyle:UIBarStyleBlack]

मूल उत्तर यहां है

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


बस Appdelegate में

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

AppDelegate.m में, निम्न जोड़ें।

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

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

} 

और प्लिस्ट फ़ाइल में, 'नियंत्रक-आधारित स्टेटस बार उपस्थिति देखें' को सेट करें।


नोट: अधिकांश उल्लिखित उत्तर आईओएस 7/8 के लिए काम नहीं करता है

Info.plist में 'कंट्रोलर-आधारित स्टेटस बार उपस्थिति' को NO के रूप में सेट करें

AppDelegate में जोड़ें

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

सेवा मेरे

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

यह समाधान आईओएस 7/8 के लिए काम करता है


यह आईओएस 7 यूआई संक्रमण गाइड में प्रलेखित है, जिसे आपको सीधे एक्सेस करने के लिए ऐप्पल डेवलपर आईडी की आवश्यकता है। प्रासंगिक अंश:

चूंकि स्टेटस बार पारदर्शी है, इसके पीछे का दृश्य दिखाता है। [...] एक UIStatusBarStyle स्थिर का उपयोग यह निर्दिष्ट करने के लिए करें कि क्या स्टेटसबार सामग्री अंधेरा या प्रकाश होनी चाहिए:

UIStatusBarStyleDefault अंधेरे सामग्री प्रदर्शित करता है। [...]

UIStatusBarStyleLightContent प्रकाश सामग्री प्रदर्शित करता है। जब स्टेटस बार के पीछे अंधेरा सामग्री है तो इसका उपयोग करें।

संभवतः ब्याज की भी:

आईओएस 7 में, आप एक व्यक्तिगत vew नियंत्रक से स्टेटस बार की शैली को नियंत्रित कर सकते हैं और ऐप चलाते समय इसे बदल सकते हैं। इस व्यवहार को चुनने के लिए, ऐप की Info.plist फ़ाइल में UIViewControllerBasedStatusBarAppearance कुंजी जोड़ें और इसे मान YES

मैं निश्चित रूप से दस्तावेज़ के माध्यम से देखने की अनुशंसा करता हूं, जो फिर से, आप अपने ऐप्पल डेवलपर आईडी से एक्सेस कर सकते हैं।


यदि आपके पास इंटरफ़ेस बिल्डर के माध्यम से बनाया गया एक एम्बेडेड नेविगेशन नियंत्रक है, तो अपने नेविगेशन नियंत्रक को प्रबंधित करने वाले वर्ग में निम्न सेट करना सुनिश्चित करें:

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
} 

आपको बस इतना ही चाहिए।


यदि आप स्विफ्ट के साथ एक ही परिणाम चाहते हैं, तो आप इस कोड का उपयोग अपनी AppDelegate.swift फ़ाइल में कर सकते हैं:

UINavigationBar.appearance().barStyle = .BlackTranslucent

और आपकी स्टेटस बार का टेक्स्ट सफेद होगा :-)!


इनमें से कोई भी मेरे लिए काम नहीं करता है, इसलिए यहां एक कामकाजी समाधान है ...

Info.plist , एक पंक्ति जोड़ें:

UIViewControllerBasedStatusBarAppearance , और मान NO सेट करें।

फिर AppDelegate में किया गया didFinishLaunchingWithOptions , इन पंक्तियों को जोड़ें:

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

मैं आपको अपने प्रश्न का पूरा उत्तर देता हूं। स्टेटस बार टेक्स्ट रंग बदलना बहुत आसान है लेकिन आईओएस 7 में विशेष रूप से नए लोगों के लिए यह थोड़ा उलझन में है।

यदि आप दृश्य नियंत्रक का चयन करके और दाईं ओर सिम्युलेटेड मेट्रिक्स पर जाकर स्टोरीबोर्ड में काले रंग से सफेद रंग बदलने की कोशिश कर रहे हैं, तो यह काम नहीं करेगा और मुझे नहीं पता कि क्यों। इसे इस तरह बदलकर काम करना चाहिए लेकिन किसी भी तरह से।

दूसरा, आपको अपनी plist में UIViewControllerBasedStatusBarAppearance प्रॉपर्टी नहीं मिलेगी लेकिन डिफ़ॉल्ट रूप से वहां नहीं है। आपको + बटन पर क्लिक करके इसे स्वयं जोड़ना होगा और फिर इसे NO पर सेट करना होगा।

आईओएस 7 स्टेटस बार टेक्स्ट रंग

अंत में, आपको अपनी AppDelegate.m फ़ाइल पर जाना होगा और निम्नलिखित में जोड़ें FinishLaunchingWithOptions विधि, निम्न पंक्ति जोड़ें:

     [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

यह आपके सभी व्यू कंट्रोलर के लिए रंग को सफेद में बदल देगा। उम्मीद है की यह मदद करेगा!


मैंने कुछ चीजें अलग की और यह मेरे लिए काम करता है।

कोड में कोई बदलाव नहीं होने के कारण, मैंने अपनी .plist फ़ाइल को इस तरह कॉन्फ़िगर किया:

  • नियंत्रक-आधारित स्टेटस बार उपस्थिति देखें> नहीं
  • स्टेटस बार शैली> UIStatusBarStyleLightContent (सरल स्ट्रिंग)

मुझे उम्मीद है यह मदद करेगा।

संपादित करें

प्रत्येक व्यू कंट्रोलर के लिए मैं "स्टेटस बार" की सिम्युलेटेड मेट्रिक्स प्रॉपर्टी को स्टोरीबोर्ड में "अनुमानित" से "लाइट कंटेंट" में बदलता हूं


  1. .plist फ़ाइल में UIViewControllerBasedStatusBarAppearance को UIViewControllerBasedStatusBarAppearance सेट करें।

  2. [self setNeedsStatusBarAppearanceUpdate]; एक [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
}

इस काम को करने की कुंजी यह है कि केवल पूर्णस्क्रीन व्यू कंट्रोलर स्टेटस बार की शैली को निर्देशित करने के लिए मिलता है।

यदि आप एक नेविगेशन नियंत्रक का उपयोग कर रहे हैं और प्रति दृश्य नियंत्रक आधार पर स्टेटस बार को नियंत्रित करना चाहते हैं, तो आप UINavigationController को उपclass करना चाहते हैं और पसंदीदाStatusBarStyle को कार्यान्वित करना चाहते हैं जैसे कि यह शीर्ष दृश्य नियंत्रक की वरीयता देता है।

सुनिश्चित करें कि आप अपने स्टोरीबोर्ड दृश्य में क्लास संदर्भ को यूनाविगेशन कंट्रोलर से अपने उप-वर्ग (उदाहरण के लिए नीचे दिए गए उदाहरण में MyNavigationController) में बदलें।

(मेरे लिए निम्नलिखित काम करता है। यदि आपका ऐप टैबबार आधारित है, तो आप UITabBarController को उप-वर्गीकरण करके कुछ ऐसा करना चाहते हैं लेकिन मैंने इसे आजमाया नहीं है)।

@interface MyNavigationController : UINavigationController

@end

@implementation MyNavigationController

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return self.topViewController.preferredStatusBarStyle;
}

@end

संक्षेप में संक्षेप में, अपनी परियोजना Info.plist संपादित करें और जोड़ें:

View controller-based status bar appearance : NO

Status bar style : Opaque black style

या यदि आपके पास कच्ची कुंजी / मूल्य प्लिस्ट है

UIViewControllerBasedStatusBarAppearance : NO

UIStatusBarStyle : Opaque black style


यदि आप अभी भी info.plist में View controller-based status bar appearance का उपयोग करना चाहते हैं, जिसका अर्थ है कि आप प्रत्येक व्यू-कंट्रोलर के लिए स्टेटसबार बदल सकते हैं, तो ViewDidLoad में स्टेटस बार में व्हाइट टेक्स्ट के लिए निम्न का उपयोग करें:

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

  1. Project जाएं -> Target ,

  2. फिर Status Bar Style Light सेट करें। यह लॉन्च स्क्रीन से स्टेटस-बार सफेद बनाता है।

  3. फिर Info.plist में NO बराबर View controller-based status bar appearance सेट करें।


इसके लिए आपको कोई कोड करने की आवश्यकता नहीं है

आपको निम्नानुसार info.plist में "नियंत्रक-आधारित स्थिति बार उपस्थिति देखें" कुंजी जोड़ने की आवश्यकता है:

और इसके मान प्रकार को बूलियन और मान को NO पर सेट करें। फिर प्रोजेक्ट सेटिंग्स पर क्लिक करें, फिर सामान्य टैब पर क्लिक करें और परिनियोजन जानकारी के तहत पसंदीदा स्टेटस बार शैली को सेट करें। निम्नानुसार:

बस।





uistatusbar