मैं नीली या कुछ अन्य रंग की तरह स्टेटस बार का रंग बदलने की कोशिश कर रहा हूं।स्टेटस बार का रंग बदलना
क्या यह संभव है, या ऐप्पल इसे अनुमति नहीं देता है?
मैं नीली या कुछ अन्य रंग की तरह स्टेटस बार का रंग बदलने की कोशिश कर रहा हूं।स्टेटस बार का रंग बदलना
क्या यह संभव है, या ऐप्पल इसे अनुमति नहीं देता है?
Plist में सबसे पहले NO
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView
if statusBar.responds(to:#selector(setter: UIView.backgroundColor)) {
statusBar.backgroundColor = UIColor.blue
}
UIApplication.shared.statusBarStyle = .lightContent
return true
}
उत्पादन स्क्रीनशॉट को View controller-based status bar appearance
सेट
यह निजी, अनियंत्रित API का उपयोग कर रहा है जो ऐप समीक्षा पास नहीं कर सकता है। इस तरह की चीजें करने का कभी अच्छा विचार नहीं है। यह क्रैश होने की संभावना है, खासतौर पर लिखे गए, जब निजी एपीआई कुछ भविष्य में आईओएस अपडेट में बदल जाता है। – rmaddy
मेरे पास एक ऐप का कारण खारिज कर दिया गया था, जबकि दूसरा बस ठीक से स्वीकार किया गया था। वे इसे निजी एपीआई उपयोग पर विचार करते हैं, इसलिए आप समीक्षा प्रक्रिया के दौरान किस्मत के अधीन हैं :) - @Sebyddd – byJeevan
मैं निश्चित रूप से ** आपके उत्तर में यह तथ्य जोड़ूंगा। – dfd
नहीं, यह संभव नहीं रेडीमेड सार्वजनिक API के साथ है।
लेकिन iOS 7
के रिलीज के साथ, आप स्थिति पट्टी का स्वरूप बदलने के लिए अनुमति होती है। इसलिए मैं यहां अपना कामकाज पोस्ट कर रहा हूं।
एक दृश्य नियंत्रक से preferredStatusBarStyle
अधिभावी द्वारा:
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
वैकल्पिक रूप से, आप UIApplication statusBarStyle
विधि का उपयोग कर स्थिति पट्टी शैली सेट कर सकते हैं। ऐसा करने के लिए, "नियंत्रक-आधारित स्थिति बार उपस्थिति देखें" नामक एक नई कुंजी डालें और मान को NO पर सेट करें।
"नियंत्रक-आधारित स्थिति बार उपस्थिति देखें" अक्षम करके, आप निम्न कोड का उपयोग कर स्थिति बार शैली सेट कर सकते हैं।
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
अंत में, जैसे
नीचे[[UINavigationBar appearance] setBarTintColor:[UIColor blueColor]];
अपने उत्तर को स्पष्ट करने के लिए, क्या यह स्टेटस बार ** पृष्ठभूमि ** रंग ** ** विशिष्ट ** रंग में बदलता है? – dfd
इस संपादन को कोई मतलब नहीं है। ओपी ने नेविगेशन बार नहीं, स्टेटस बार बदलना चाहता है। – dfd
कृपया इस लिंक को देखें http://www.appcoda.com/customize-navigation-status-bar-ios-7/ – byJeevan
आप आवेदन लॉन्च के दौरान या आपके विचार नियंत्रक के viewDidLoad दौरान स्थिति पट्टी के लिए पृष्ठभूमि रंग सेट कर सकते हैं UINavigationBar
संपत्ति टिंट रंग बदल जाते हैं।
यहाँ Apple Guidelines/Instruction स्थिति पट्टी परिवर्तन के बारे में है:
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 'फ़ाइल में NO
को UIViewControllerBasedStatusBarAppearance
निर्धारित किया है।
अगर आप स्थिति पट्टी शैली स्थापित करने के लिए दृश्य नियंत्रक स्तर पर वान फिर इन चरणों का पालन करें:
.plist
फ़ाइल में YES
को UIViewControllerBasedStatusBarAppearance
सेट, आप केवल UIViewController स्तर पर स्थिति पट्टी शैली निर्धारित करने की आवश्यकता है, तो । आपके विचार नियंत्रक में setNeedsStatusBarAppearanceUpdate
ओवरराइड preferredStatusBarStyle -
viewDidLoad में समारोह जोड़ें।
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
सेट .plist की स्थिति पट्टी शैली सेटअप स्तर के अनुसार मूल्य।
यहाँ मेरी समाधान नहीं है: एक UIView
बनाने के लिए, कृत्रिम स्थिति पट्टी पृष्ठभूमि
1. बनाएँ एक UIView
// status bar's height is 20.0pt
CGRect frame = CGRectMake(0.0, 0.0, [UIScreen mainScreen].bounds.size.width, 20.0);
UIView *fakeStatusBarBG = [[UIView alloc] initWithFrame:frame];
fakeStatusBarBG.backgroundColor = [UIColor yourColor];
2.Add इसे करने के लिए के रूप में देखें नियंत्रक के अपने रूट दृश्य में जोड़ने आपके विचार नियंत्रक के रूट दृश्य
// self is your view controller, make sure fakeStatusBarBG is the top subview in your view hierarchy
[self.view insertSubview:fakeStatusBarBG aboveSubview:yourTopSubview];
आपके जाने।
3. (अतिरिक्त) स्टेटस बार पर सामग्री रंग बदलें, केवल सफेद या काला।
- (UIStatusBarStyle)preferredStatusBarStyle
{
if (youWantWhiteColor)
{
return UIStatusBarStyleLightContent;
}
return UIStatusBarStyleDefault;
}
इस तरीके को निजी एपीआई का उपयोग नहीं करता, इसलिए आप सुरक्षित हैं। :-)
दो उत्तरों (टिप्पणियों के साथ) के आधार पर, उत्तर (जैसे मैंने सोचा) ** ** ** है। आप (1) स्टेटस बार का फ़ॉन्ट रंग बदल सकते हैं या (2) निजी एपीआई का उपयोग कर सकते हैं, लेकिन आप ऐप्पल को अपने ऐप को अस्वीकार करने का मौका ले रहे हैं (या बदतर, इसे सड़क के नीचे कहीं भी खारिज कर दिया गया है)। – dfd