iphone आईओएस 7 नेविगेशन बार पाठ और तीर रंग




ios objective-c (8)

इसने मुझे पता लगाने के लिए लगभग आधा दिन लिया लेकिन यह मेरे लिए काम करता है। RootViewController के अंदर जो नेविगेशन नियंत्रक प्रारंभ करता है, मैंने इस कोड को मेरे दृश्य में डाला DidAppear विधि:

//set bar color
[self.navigationController.navigationBar setBarTintColor:[UIColor colorWithRed:85.0/255.0 green:143.0/255.0 blue:220.0/255.0 alpha:1.0]];
//optional, i don't want my bar to be translucent
[self.navigationController.navigationBar setTranslucent:NO];
//set title and title color
[self.navigationItem setTitle:@"Title"];
[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor]];
//set back button color
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], UITextAttributeTextColor,nil] forState:UIControlStateNormal];
//set back button arrow color
[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];

here पर मेरी पूरी पोस्ट

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

तो, मैंने इस कोड का इस्तेमाल किया:

[[UINavigationBar appearance] setTitleTextAttributes:
     [NSDictionary dictionaryWithObjectsAndKeys:
      [UIColor whiteColor],
      NSForegroundColorAttributeName,
      [UIColor whiteColor],
      NSForegroundColorAttributeName,
      [NSValue valueWithUIOffset:UIOffsetMake(0, -1)],
      NSForegroundColorAttributeName,
      [UIFont fontWithName:@"Arial-Bold" size:0.0],
      NSFontAttributeName,
      nil]];

लेकिन बैक बटन टेक्स्ट रंग , तीर और बार बटन में अभी भी डिफ़ॉल्ट नीला रंग है
नीचे दिए गए चित्रों पर उन रंगों को कैसे बदलें?


ऐसा लगता है कि iOS Settings में Accessibility कंट्रोल ने नेविगेशन बार बटन पर रंग-वार करने की कोशिश की हर चीज को ओवरराइड किया है। सुनिश्चित करें कि आपके पास डिफ़ॉल्ट सेटिंग्स में सभी सेटिंग्स हैं (सेट को विपरीत, बोल्ड टेक्स्ट , बटन आकार इत्यादि सेट करें) अन्यथा आपको कुछ भी बदलाव दिखाई नहीं देगा। एक बार मैंने ऐसा करने के बाद, सभी रंग परिवर्तन कोड अपेक्षित के रूप में काम करना शुरू कर दिया। आपको उन्हें बंद करने की आवश्यकता नहीं हो सकती है, लेकिन मैंने इसे आगे नहीं बढ़ाया।


मुझे लगता है कि पिछले जवाब सही हैं, यह वही काम करने का एक और तरीका है। मैं इसे दूसरों के साथ यहां साझा कर रहा हूं अगर यह किसी के लिए उपयोगी हो। इस प्रकार आप ios7 में navbar के लिए टेक्स्ट / शीर्षक रंग बदल सकते हैं:

UIColor *red = [UIColor colorWithRed:254.0f/255.0f green:0.0f/255.0f blue:0.0f/255.0f alpha:1.0];
NSMutableDictionary *navBarTextAttributes = [NSMutableDictionary dictionaryWithCapacity:1];
[navBarTextAttributes setObject:red forKey:NSForegroundColorAttributeName ];
self.navigationController.navigationBar.titleTextAttributes = navBarTextAttributes;

[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];

यदि आप शीर्षक टेक्स्ट आकार और टेक्स्ट रंग को बदलना चाहते हैं तो आपको इसके 2 ऑब्जेक्ट्स के लिए NSDictionary शीर्षकTextAttributes को बदलना होगा:

    self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Arial" size:13.0],NSFontAttributeName,
                                                                  [UIColor whiteColor], NSForegroundColorAttributeName, 
                                                                  nil];

स्विफ्ट / आईओएस 8

let textAttributes = NSMutableDictionary(capacity:1)
textAttributes.setObject(UIColor.whiteColor(), forKey: NSForegroundColorAttributeName)
navigationController?.navigationBar.titleTextAttributes = textAttributes

UINavigationBar शीर्षक का रंग बदलने के लिए सही तरीका इस कोड का उपयोग करें:

[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor]];

UITextAttributeTextColor को UITextAttributeTextColor IOS 7 संस्करण में बहिष्कृत किया गया है। इसके बजाय NSForegroundColorAttributeName उपयोग करें।


विन के जवाब ने मेरे लिए बहुत अच्छा काम किया। Xamarin.iOS / मोनो टच का उपयोग कर सी # डेवलपर्स के लिए एक ही समाधान है:

var navigationBar = NavigationController.NavigationBar; //or another reference
navigationBar.BarTintColor = UIColor.Blue;
navigationBar.TintColor = UIColor.White;
navigationBar.SetTitleTextAttributes(new UITextAttributes() { TextColor = UIColor.White });
navigationBar.Translucent = false;






ios7