मेरे एप्लिकेशन में एक डार्क बैकग्राउंड है, लेकिन iOS 7 में स्टेटस बार पारदर्शी हो गया। इसलिए मैं वहां कुछ भी नहीं देख सकता, केवल कोने में हरे रंग की बैटरी संकेतक। मैं स्थिति पट्टी पाठ रंग को सफेद में कैसे बदल सकता हूं जैसे यह होम स्क्रीन पर है?
मेरे एप्लिकेशन में एक डार्क बैकग्राउंड है, लेकिन iOS 7 में स्टेटस बार पारदर्शी हो गया। इसलिए मैं वहां कुछ भी नहीं देख सकता, केवल कोने में हरे रंग की बैटरी संकेतक। मैं स्थिति पट्टी पाठ रंग को सफेद में कैसे बदल सकता हूं जैसे यह होम स्क्रीन पर है?
जवाबों:
सेट UIViewControllerBasedStatusBarAppearance
करने के लिए YES
.plist फ़ाइल में।
में viewDidLoad
करते हैं एक[self setNeedsStatusBarAppearanceUpdate];
निम्नलिखित विधि जोड़ें:
- (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())
वैकल्पिक रूप से, आप व्यू-कंट्रोलर आधारित स्थिति बार उपस्थिति से बाहर निकल सकते हैं:
View controller-based status bar appearance
करने के लिए NO
अपने में Info.plist
।[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
नोट: इस विधि को iOS9 में पदावनत किया गया है। preferredStatusBarStyle
इसके बजाय UIViewController पर उपयोग करें । ( Apple डेवलपर लाइब्रेरी देखें )
आप कोड की किसी भी लाइन को लिखे बिना ऐसा कर सकते हैं!
पूरे ऐप के माध्यम से स्टेटस बार टेक्स्ट का रंग सफेद करने के लिए निम्नलिखित करें
आप plist फ़ाइल पर परियोजना :
Transparent black style (alpha of 0.5)
NO
NO
UIStatusBarStyleLightContent
में plist info
लेकिन वहाँ है Transparent Black
जो एक ही चाल करना होगा :) इसके अलावा, आप जोड़ने की जरूरत View controller-based status bar appearance
यह है के रूप में यह वहाँ नहीं मूल रूप से है और सभी क्या आप काम करने के लिए :) इसे पाने के लिए की जरूरत है
<key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>UIViewControllerBasedStatusBarAppearance</key> <false/>
नोट: अधिकांश अपवोट उत्तर iOS 7/8 के लिए काम नहीं करता है
Info.plist में NO के रूप में 'कंट्रोलर-आधारित स्टेटस बार उपस्थिति' सेट करें
AppDelegate में जोड़ें
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
सेवा
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
......
...
}
यह समाधान iOS 7/8 के लिए काम करता है
मेरे लिए, अन्य उत्तरों (और अन्य स्रोतों / प्रलेखन से) में सभी चीजों का उपयोग करने के साथ कुछ नहीं हुआ। नेविगेशन बार स्टाइल को XIB में "ब्लैक" सेट करने में क्या मदद मिली। इसने पाठ को बिना किसी कोड के सफेद रंग में बदल दिया।
मेरे लिए किसी ने काम नहीं किया, इसलिए यहां काम करने का हल है ...
में Info.plist
, एक पंक्ति जोड़ें:
UIViewControllerBasedStatusBarAppearance
, और मान सेट करें NO
।
फिर AppDelegate में didFinishLaunchingWithOptions
, इन पंक्तियों को जोड़ें:
[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleLightContent];
इसके लिए आपको कोई कोड करने की आवश्यकता नहीं है
आपको info.plist में "कंट्रोलर-आधारित स्टेटस बार उपस्थिति" कुंजी जोड़ने की आवश्यकता है:
& इसके मूल्य प्रकार को बूलियन और मान के लिए सेट करें। फिर प्रोजेक्ट सेटिंग्स पर क्लिक करें, फिर जनरल टैब पर क्लिक करें और परिनियोजन जानकारी के तहत पसंदीदा स्थिति पट्टी शैली को निम्न पर सेट करें। इस प्रकार है:
बस।
निम्नलिखित के रूप में सिर्फ दो चरण:
चरण 1:
की जानकारी टैब के तहत project target
, पंक्ति जोड़ें:
UIViewControllerBasedStatusBarAppearance
, मूल्य निर्धारित किया है NO
।
चरण 2:
परियोजना में AppDelegate.m
:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
…
[application setStatusBarStyle:UIStatusBarStyleLightContent];
…
}
यह 18 सितंबर, 2013 को जारी गोल्डन मास्टर आईओएस 7 और एक्सकोड 5 जीएम बीज और आईओएस 7 एसडीके में काम करता है (कम से कम नेविगेशन सिस्टम छिपा हुआ है:
सेट the UIViewControllerBasedStatusBarAppearance
करने के लिए NO
में
Info.plist
।
में ViewDidLoad
विधि या कहीं भी, जहाँ आप परिवर्तन स्थिति पट्टी शैली करना चाहते हैं:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
यदि आपका UIViewController एक UINavigationController के अंदर है, तो आपको BarStyle सेट करना होगा:
-[UINavigationBar setBarStyle:UIBarStyleBlack]
मूल उत्तर यहाँ है
यदि आपके पास इंटरफ़ेस निर्माता के माध्यम से बनाया गया एक एम्बेडेड नेविगेशन नियंत्रक है , तो अपने नेविगेशन नियंत्रक का प्रबंधन करने वाले वर्ग में निम्नलिखित सेट करना सुनिश्चित करें:
-(UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
आपको बस इतना ही चाहिए।
IOS 7 ऐप के लिए, मैं एक स्विफ्ट प्रोजेक्ट पर Xcode 6 बीटा 5 का उपयोग कर रहा हूं ।
यहाँ मैंने क्या किया है, और यह काम करता है:
Info.plist:
AppDelegate.m में, निम्नलिखित जोड़ें।
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}
और प्लिस्ट फ़ाइल में, 'कंट्रोलर-आधारित स्टेटस बार उपस्थिति' को NO पर सेट करें।
सीधे शब्दों में कहें
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
खैर, यह वास्तव में मेरे लिए केक के एक टुकड़े की तरह काम कर रहा है।
यदि आपके ऐप की पर जाएं info.plist
।
View controller-based status bar appearance
करेंNO
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];
}
बिंगो। यह मेरे लिए काम कर रहा है।
View controller-based status bar appearance equal
करने के लिए NO
टुकड़ा मुझे याद आ रहा था। धन्यवाद
स्विफ्ट 3 में सिर्फ 2 चरणों के साथ बहुत आसान है। अपनी info.plist पर जाएं और View controller-based status bar appearance
"NO" की कुंजी बदलें । फिर 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
}
Apple डेवलपर डॉक्यूमेंटेशन द्वारा वर्णित के अनुसार iOS 7 व्यक्तिगत बार कंट्रोलरों को स्टेटस बार की उपस्थिति निर्धारित करने की अनुमति देता है:
iOS 7 ऐप कंट्रोलर को रनिंग करते समय स्टेटस बार की शैली को समायोजित करने की क्षमता देता है। स्टेटस बार शैली को गतिशील रूप से बदलने का एक अच्छा तरीका है
preferredStatusBarStyle
- एक एनीमेशन ब्लॉक के भीतर और स्थिति बार उपस्थिति को अपडेट करना और कॉल करना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/
कुछ अतिरिक्त करने की आवश्यकता नहीं है, बस इस कोड को अपने viewController में लिखें और स्टेटस बार का रंग सफेद करें
- (UIStatusBarStyle)preferredStatusBarStyle{return UIStatusBarStyleLightContent;}
Xcode GM बीज के लिए अपडेट किया गया उत्तर:
के रूप में Info.plist
डाल दियाView controller-based status bar appearance
NO
परियोजना में, सेट करें:
ViewDidLoad में:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
मुझे लगता है कि सभी उत्तर वास्तव में समस्या को इंगित नहीं करते हैं क्योंकि वे सभी विशिष्ट परिदृश्यों में काम करते हैं। लेकिन अगर आपको सभी मामलों को कवर करने की आवश्यकता है तो अंक का पालन करें:
इस पर निर्भर करते हुए कि आपको स्थिति बार प्रकाश शैली की आवश्यकता कहाँ है, आपको हमेशा इन 3 बिंदुओं को ध्यान में रखना चाहिए:
1) यदि आपको लॉन्च स्क्रीन पर या अन्य स्थानों पर स्थिति पट्टी की आवश्यकता होती है, तो आप इसे नियंत्रित नहीं कर सकते हैं (न कि नियंत्रक में, बल्कि कुछ सिस्टम नियंत्रित तत्व / लॉन्च स्क्रीन जैसे क्षण) आप अपनी परियोजना सेटिंग्स पर जाते हैं
2) यदि आपके पास एक नेविगेशन नियंत्रक के अंदर एक नियंत्रक है तो आप इसे इंटरफ़ेस बिल्डर में निम्नानुसार बदल सकते हैं:
a) अपने नेविगेशन कंट्रोलर के नेविगेशन बार को चुनें
b) फिर नेविगेशन बार की शैली को "ब्लैक" पर सेट करें, क्योंकि इसका मतलब है कि आपके पास "ब्लैक" होगा -> आपके स्टेटस बार के नीचे डार्क बैकग्राउंड, इसलिए यह स्टेटस बार को व्हाइट में सेट करेगा
या कोड में निम्नानुसार है
navigationController?.navigationBar.barStyle = UIBarStyle.Black
3) यदि आपके पास अकेले नियंत्रक है जिसे अपनी स्थिति बार शैली की आवश्यकता है और यह UINavacController के रूप में कुछ कंटेनर संरचना में एम्बेडेड नहीं है
नियंत्रक के लिए कोड में स्थिति बार शैली सेट करें:
बस बुला रहा है
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];
में
-(BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
}
AppDelegate
iOS7 में मेरे लिए मेरे काम का तरीका शानदार है।
View controller-based status bar appearance = NO
यह iOS 7 UI ट्रांजिशन गाइड में प्रलेखित है , जिसे सीधे एक्सेस करने के लिए आपको Apple डेवलपर आईडी की आवश्यकता होती है। प्रासंगिक अंश:
क्योंकि स्थिति पट्टी पारदर्शी है, इसलिए इसके पीछे का दृश्य दिखाता है। [...]
UIStatusBarStyle
यह बताने के लिए एक स्थिरांक का उपयोग करें कि क्या स्थिति पट्टी सामग्री अंधेरे या हल्की होनी चाहिए:
UIStatusBarStyleDefault
अंधेरे सामग्री प्रदर्शित करता है। [...]
UIStatusBarStyleLightContent
प्रकाश सामग्री प्रदर्शित करता है। जब स्टेटस बार के पीछे डार्क कंटेंट का उपयोग करें।
ब्याज की भी संभावित:
IOS 7 में, आप अलग-अलग vew कंट्रोलर से स्टेटस बार की शैली को नियंत्रित कर सकते हैं और ऐप को चलाते समय इसे बदल सकते हैं। इस व्यवहार का चयन करने के
UIViewControllerBasedStatusBarAppearance
लिए, ऐप कीInfo.plist
फ़ाइल में कुंजी जोड़ें और इसे मूल्य देंYES
।
मैं निश्चित रूप से दस्तावेज़ के माध्यम से एक नज़र रखने की सलाह दूंगा, जो फिर से, आप अपने ऐप्पल डेवलपर आईडी के साथ उपयोग कर सकते हैं।
यहाँ स्थिति पट्टी परिवर्तन के बारे में Apple दिशानिर्देश / निर्देश है । स्टेटस बार में केवल डार्क एंड लाइट (जबकि और ब्लैक) की अनुमति है।
यहाँ है - स्टेटस बार स्टाइल कैसे बदलें:
यदि आप स्टेटस बार स्टाइल, एप्लिकेशन स्तर सेट करना चाहते हैं तो अपनी `.plist 'फ़ाइल में सेट UIViewControllerBasedStatusBarAppearance
करें NO
।
यदि आप व्यूअर स्तर पर स्टेटस बार स्टाइल सेट करना चाहते हैं, तो इन चरणों का पालन करें:
UIViewControllerBasedStatusBarAppearance
करने के लिए YES
में .plist
, फ़ाइल यदि आप केवल UIViewController स्तर पर सेट स्थिति पट्टी शैली की जरूरत है।ViewDidLoad में फ़ंक्शन जोड़ें - setNeedsStatusBarAppearanceUpdate
अपने दृश्य नियंत्रक में अधिमान्यस्टार्टबर्टल को ओवरराइड करें।
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
स्थिति बार शैली सेटअप स्तर के अनुसार .plist का मान सेट करें।
एप्लिकेशन लॉन्च के दौरान या अपने व्यू कंट्रोलर के व्यूडॉलड के दौरान स्टेटस बार के लिए बैकग्राउंड कलर बदलने / सेट करने के लिए यहां कुछ हैक करने की ट्रिक दी गई है।
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
}
}
यहाँ परिणाम है:
मैंने कुछ चीजें अलग कीं और यह मेरे लिए काम करता है।
कोड में कोई बदलाव नहीं होने के कारण, मैंने अपनी .plist फ़ाइल को इस तरह कॉन्फ़िगर किया:
मुझे उम्मीद है यह मदद करेगा।
प्रत्येक दृश्य नियंत्रक के लिए मैं स्टोरीबोर्ड में, "अनुमान" से "लाइट लाइट" में "स्टेटस बार" की सिमित मेट्रिक्स प्रॉपर्टी को बदलता हूं।
यदि आप अभी भी जानकारी View controller-based status bar appearance
में उपयोग करना चाहते हैं । YES पर सेट करें, जिसका अर्थ है कि आप प्रत्येक दृश्य-नियंत्रक के लिए स्थिति पट्टी बदल सकते हैं, ViewDidLoad में स्थिति-बार में सफेद पाठ के लिए निम्न का उपयोग करें:
[[[self navigationController] navigationBar] setBarStyle:UIBarStyleBlackTranslucent];
in.plist फ़ील्ड मान सेट करें NO दृश्य नियंत्रक-आधारित स्थिति बार उपस्थिति और लक्ष्य> सामान्य सेटिंग में स्थित स्टेटबार शैली प्रकाश सेट करें।
मैं आपको अपने प्रश्न का पूरा उत्तर दूं। स्टेटस बार टेक्स्ट का रंग बदलना बहुत आसान है लेकिन आईओएस 7 में इसका थोड़ा भ्रमित होना विशेष रूप से न्यूबरीज़ के लिए है।
यदि आप स्टोरीबोर्ड में दृश्य नियंत्रक का चयन करके और दाईं ओर सिमुलेटेड मेट्रिक्स पर जाकर काले से सफेद में रंग बदलने की कोशिश कर रहे हैं, तो यह काम नहीं करेगा और मुझे पता नहीं क्यों। इसे इस तरह से बदलकर काम करना चाहिए लेकिन कोई भी कैसे।
दूसरे, आपको UIViewControllerBasedStatusBarAppearance संपत्ति अपनी मुट्ठी में नहीं मिलेगी, लेकिन डिफ़ॉल्ट रूप से वहाँ नहीं है। आपको इसे + बटन पर क्लिक करके अपने आप से जोड़ना होगा और फिर इसे NO पर सेट करना होगा।
ios 7 स्टेटस बार टेक्स्ट कलर
अंत में, आपको अपनी AppDelegate.m फाइल में जाना होगा और didFinishLaunchingWithOptions विधि में निम्नलिखित को जोड़ना होगा, निम्न पंक्ति जोड़ें:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
यह आपके सभी दृश्य नियंत्रकों के लिए रंग को सफेद में बदल देगा। उम्मीद है की यह मदद करेगा!