IOS 7 नेविगेशन बार पाठ और तीर का रंग


234

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

इसलिए, मैंने इस कोड का उपयोग किया:

[[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]];

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

यहां छवि विवरण दर्ज करें


1
AppDelegate में कोशिश करें अगर ([self.window respondsToSelector: @selector (setTintColor :)]) self.window.tintColor = [UIColor whiteColor];
एवगेनी एस


दिलचस्प है कि आपके कोड ने मेरे लिए बहुत अच्छा काम किया (बस पाठ का रंग सफेद करने के लिए बदलना चाहता था)। धन्यवाद!
विलियम टी। मलार्ड

नीला रंग आप क्या उपयोग कर रहे हैं? अच्छा लगता है!
ईबी

@ebi कुछ लोगों को साझा करना पसंद नहीं है। बस इसे लेने के लिए एक रंग बीनने वाला उपयोगकर्ता। या .... आप वहां जाते हैं: RGB: (18, 60, 133)
pnizzle

जवाबों:


753

IOS 7 से कुछ गुणों का व्यवहार UINavigationBarबदल गया है । आप नीचे दिखाए गए चित्र में देख सकते हैं:

यहां छवि विवरण दर्ज करें


दो खूबसूरत लिंक मैं आपके साथ साझा करना चाहता हूं। अधिक जानकारी के लिए आप इन लिंक पर जा सकते हैं:

  1. iOS 7 UI ट्रांज़िशन गाइड
  2. IOS 7 के लिए अपने ऐप को कैसे अपडेट करें

BarTintColor के लिए Apple प्रलेखन कहता है:

यह रंग डिफ़ॉल्ट रूप से पारभासी बनाया जाता है जब तक कि आप पारभासी संपत्ति को NO पर सेट न करें।

नमूना कोड :

self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
[self.navigationController.navigationBar 
 setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
self.navigationController.navigationBar.translucent = NO;

मैंने कोशिश की है: self.nav.navigationBar.tintColor = [UIColor whiteColor]; self.nav.navigationBar.barTintColor = [UIColor colorWithRed: 6.0 / 255.0 हरा: 12.0 / 255.0 नीला: 19.0 / 255.0 अल्फा: 1.0]; लेकिन सब कुछ अभी भी नीला है।
1110

2
मैंने इसे पहले पढ़ा था लेकिन यह केवल पाठ नहीं बल्कि तीर है। यह अभी भी नीला है :(
1110


2
@ चेल्सी: इस लाइन के बारे में कैसे? :[self.navigationController.navigationBar setTitleTextAttributes:@{[UIFont fontWithName:@"YOURFONT" size:14], NSFontAttributeName}];
भाविन

4
मत भूलो कि आप ऐपडेलगेट में पूरे ऐप के लिए टिंट को बदल सकते हैं: [[UINavigationBar उपस्थिति] setTintColor: [UIColor blackColor]];
सिमोन_सिमली

85

यहां छवि विवरण दर्ज करें

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

//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]];

इस पर मेरी पूरी पोस्ट यहाँ


1
यदि आपको बैक एरो का रंग बदलने में समस्या हो रही है, तो यह स्निपेट समस्या को ठीक कर देगा। कम से कम, आपको अपने वास्तविक rootViewController में जोड़े गए कोड की अंतिम पंक्ति की आवश्यकता होगी।
23

हाँ, जॉन। मैंने कल के रूप में अच्छी तरह से इस पर लगभग एक घंटे बर्बाद कर दिया। एक समस्या (बड़ी समस्या) यह थी कि सभी संभावित विशेषताओं को इंगित करने में डॉक्स भयानक थे। कोई भी विचार जहां वे सूचीबद्ध हो सकते हैं? स्व।
एलेक्स ज़ावाटोन

धन्यवाद @ जॉन यह मेरे कस्टम रंग को ओवरलैप कर रहा है, क्या आप मुझे समझा सकते हैं?
वैभव लिम्बानी

मुझे लगता है कि आपको एक नया प्रश्न बनाना चाहिए। जब तक मैं आपका कोड नहीं देखूंगा और आप क्या कर रहे हैं मैं आपको बता नहीं सकता। @ मैकगेक
जॉन रिसेल्वेटो

3
धन्यवाद, यह काम किया :)। लेकिन UITextAttributeTextColor को iOS 7 में चित्रित किया गया है, अब आपको NSForegroundColorAttributeName
YYamil

37

स्विफ्ट 3, आईओएस 10

विश्व स्तर पर रंग असाइन करने के लिए, AppDelegate में didFinishLaunchingWithOptions:

let textAttributes = [NSForegroundColorAttributeName:UIColor.white]
UINavigationBar.appearance().titleTextAttributes = textAttributes

स्विफ्ट 4, आईओएस 11

let textAttributes = [NSAttributedStringKey.foregroundColor:UIColor.white]
UINavigationBar.appearance().titleTextAttributes = textAttributes

21

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

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;

नहीं पता था कि आप सेटटिटेलटेक्स्ट को आपके द्वारा किए गए तरीके से देख सकते हैं।
ब्रैड मूर

12

स्विफ्ट / iOS8

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

3
आज्ञा देनापाठ्य गुण = NSMutableDictionary (क्षमता: 1) अब NSMutableDictionary के लिए सही कॉल है।
जुलीअंसाद

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

1
मुझे यह दृष्टिकोण पसंद है क्योंकि आप इसे AppDelegate में ही सेट कर सकते हैं, और यह Appearance प्रॉक्सी का उपयोग करता है।
नियोग रे

8

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

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

UITextAttributeTextColorनवीनतम आईओएस 7 संस्करण में पदावनत किया गया है। NSForegroundColorAttributeNameइसके बजाय उपयोग करें ।


5

यदि आप शीर्षक टेक्स्ट का आकार और पाठ रंग बदलना चाहते हैं, तो आपको 2 की 2 वस्तुओं के लिए NS सहचर शीर्षक TextAttributes को बदलना होगा :

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

2

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

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;

1

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


वास्तव में मेरे साथ क्या हुआ। जब "बोल्ड टेक्स्ट" चालू था तो मैं बार बटन आइटम का टिंट रंग बदलने में असमर्थ था। वह ठीक नहीं है। अब मुझे इसके बजाय एक ग्राफिक का उपयोग करना होगा :-(
केन

0

स्विफ्ट 5 / आईओएस 13

नियंत्रक में शीर्षक का रंग बदलने के लिए:

UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.