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




ios7 statusbar (20)

  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
}

https://code.i-harness.com

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


  1. Project जाएं -> Target ,

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

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


info.plist में फ़ील्ड मान सेट करें कोई नियंत्रक-आधारित स्टेटस बार उपस्थिति देखें और लक्ष्य> सामान्य सेटिंग में स्टेटसबार स्टाइल लाइट सेट करें।


आईओएस 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/


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

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

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

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

@interface MyNavigationController : UINavigationController

@end

@implementation MyNavigationController

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

@end

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

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

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

  3. ViewDidLoad में:

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


खैर, यह वास्तव में मेरे लिए केक के टुकड़े की तरह काम कर रहा है।

अपने ऐप की info.plist

  1. NO View controller-based status bar appearance सेट करें
  2. Status bar style को UIStatusBarStyleLightContent सेट करें

फिर अपने ऐप के प्रतिनिधि पर जाएं और निम्न कोड में पेस्ट करें जहां आपने अपनी विंडोज़ रूटव्यू कंट्रोलर सेट किया है।

#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:

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

UIViewControllerBasedStatusBarAppearance , सेट मान NO

चरण 2:

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

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

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

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

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

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

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

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

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

navigationController?.navigationBar.barStyle = UIBarStyle.Black

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

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


मेरे लिए, अन्य उत्तरों (और अन्य स्रोतों / दस्तावेज़ीकरण से) में सभी चीजों का उपयोग करने के साथ कुछ भी नहीं हुआ। XIB में नेविगेशन बार स्टाइल को "ब्लैक" में सेट करने में मदद क्या थी। इसने पाठ को किसी भी कोड के बिना सफेद में बदल दिया।


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

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

Info.plist:


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

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

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

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

संपादित करें

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


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

UINavigationBar.appearance().barStyle = .BlackTranslucent

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


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

-[UINavigationBar setBarStyle:UIBarStyleBlack]

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

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


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

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

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

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

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

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

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


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

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

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


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

View controller-based status bar appearance : NO

Status bar style : Opaque black style

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

UIViewControllerBasedStatusBarAppearance : NO

UIStatusBarStyle : Opaque black style


स्विफ्ट 3 में बस 2 चरणों के साथ बहुत आसान है। अपनी 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
    }

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

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

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

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

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

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

बस।







uistatusbar