2013-09-28 17 views
58

मैं iOS 7 SDK में स्थिति पट्टी में पाठ का रंग बदलने में असमर्थ हूँ। वर्तमान में इसका काला और मैं इसे स्टोरीबोर्ड में अपने सभी दृश्य नियंत्रकों के लिए सफेद होना चाहता हूं।स्थिति पट्टी पाठ का रंग iOS 7

मैंने स्टैक ओवरव्लो जैसे THIS, THIS और THIS पर कुछ प्रश्न देखे हैं लेकिन उन्हें बहुत मदद नहीं मिली है। इस तथ्य के कारण भी हो सकता है कि मैं अपनी plist फ़ाइल में YES को UIViewControllerBasedStatusBarAppearance खोजने में असमर्थ हूं।

किसी भी एक मुझे स्टोरीबोर्ड में सभी दृश्य नियंत्रकों के लिए सफेद करने के लिए स्थिति पट्टी पाठ रंग सेट करने के लिए सही तरीके से बता सकते हैं? अग्रिम में धन्यवाद!

उत्तर

199

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

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

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

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 

यह सभी के लिए सफेद करने के लिए रंग बदल जाएगा:

ios 7 status bar text color

अंत में, आप अपने AppDelegate.m फ़ाइल के पास जाकर didFinishLaunchingWithOptions विधि में निम्नलिखित जोड़ने के लिए, निम्न पंक्ति जोड़ने के लिए आपके दृश्य नियंत्रक। उम्मीद है की यह मदद करेगा!

+3

केसी।, जैसा आपने लिखा है मैंने किया है और सब कुछ ठीक काम करता है। लेकिन जब मैं अपने ऐप में उदाहरण के लिए कैमरा रोल खोलता हूं, तो यह स्टेटस बार टेक्स्ट रंग को काले रंग में सेट करता है, और जब मैं अपने ऐप में कैमरा रोल स्टेटस बार को खारिज करता हूं तो ब्लैक टेक्स्ट होता है। मैंने अपने व्यू कंट्रोलर में - (UIStatusBarStyle) पसंदीदाStatusBarStyle का उपयोग करके रंग सेट करने का प्रयास किया। लेकिन अज्ञात कारण के लिए इसे बुलाया नहीं जा रहा है। और अभी के लिए मुझे समाधान नहीं मिला है। – Oleg

+3

मेरे पास ओलेग के समान समस्या है। लगता है कि सेब छवि पिकर इस तरह से इसे संभालने पर डिफ़ॉल्ट ओवरराइड करता है और जब आप इसके साथ काम करते हैं तो वापस स्विच करने से इंकार कर देते हैं। – MattCheetham

+0

जब मैं आईपैड पर छवि पिकर पॉपओवर खोलता हूं तो मुझे वही चीज़ दिखाई देती है। यह मेरे विचार निर्देशांक के साथ भी गड़बड़ करता है, मानते हैं कि एक नेविगेशन बार है। फिक्सओवर बंद होने के बाद बस सबकुछ रीसेट करना ठीक है। – user1055568

16

यह YES डिफ़ॉल्ट रूप से है, तो आप यह नहीं देख सकेंगे। आपको

UIViewControllerBasedStatusBarAppearance 

अपनी प्लेस्ट में जोड़ने और इसे NO पर सेट करने की आवश्यकता है।

तो फिर तुम फोन कर सकते हैं

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 
+0

'setStatusBarStyle:' अब मान्य नहीं है: पहला आईओएस 9.0 में पदावनत - उपयोग - [UIViewController पसंदीदाStatusBarStyle] –

42

आप UIViewControllerBasedStatusBarAppearance के लिए देख रहे हैं, तो आप क्लिक करने के लिए थोड़ा धन चिह्न दिखाई कि जब आप अपने plist फ़ाइल में मूल तत्व पर होवर की आवश्यकता होगी।

plist file

एक बार जब आप यह है कि, एक नई पंक्ति दिखाई देगी करते हैं - ड्रॉपडाउन सूची से "देखें नियंत्रक आधारित स्थिति पट्टी उपस्थिति" का चयन करें और अपने मूल्य के रूप में NO निर्धारित किया है। (यह दोस्ताना नाम आंतरिक UIViewControllerBasedStatusBarAppearance के रूप में घोषित किया जाता है)

इसके बाद, अपने एप्लिकेशन प्रतिनिधि सभी दृश्य नियंत्रकों के लिए सफेद करने के लिए स्थिति पट्टी रंग स्थापित करना चाहिए में निम्न विधि बुला:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 
23

सेट plist

में हां में UIViewControllerBasedStatusBarAppearanceviewDidLoad में करना एक [self setNeedsStatusBarAppearanceUpdate];

निम्न विधि जोड़ें:

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
} 
+0

अजीब पिछले उत्तरों ने मेरे लिए पहले काम किया था। कोई बात नहीं धन्यवाद! यह मेरे लिए काम किया। बीटीडब्लू अगर यह केवल व्यूडिलोड पर अपडेट हो जाता है तो मुझे इस अद्यतन को हर दृश्य को कॉल करना होगा? – Teffi

+0

यह मेरे लिए काम करता था, लेकिन केसी का समाधान काम नहीं करता था और स्टोरीबोर्ड विधि –

+0

काम नहीं करती थी यह काम करता है यदि आपके पास अलग-अलग हल्केपन की स्क्रीन हैं- es – stackOverFlew

संबंधित मुद्दे