আইওএস 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
অ্যাপ্লিকেশনটিতে চেষ্টা করুন যদি ([self.window প্রতিক্রিয়া করে ToSelector: @setector (setTintColor :)]) self.window.tintColor = [ইউআইসিওলর হোয়াইট कलোর];
ইভজেনি এস


মজার বিষয় হল আপনার কোডটি আমার পক্ষে দুর্দান্ত কাজ করেছে (কেবলমাত্র পাঠ্যের রঙ সাদা করতে চেয়েছিল)। ধন্যবাদ!
উইলিয়াম টি। ম্যালার্ড

আপনি যে নীল রঙটি ব্যবহার করছেন তা কী? ভাল দেখাচ্ছে!
ebi

@ ebi কিছু লোক ভাগ করে নেওয়া পছন্দ করে না। এটি বেছে নেওয়ার জন্য কেবল কোনও রঙ চয়নকারী ব্যবহার করুন। বা .... আপনি সেখানে যান: আরজিবি: (18, 60, 133)
পিনজল

উত্তর:


753

আইওএস 7 থেকে কিছু বৈশিষ্ট্যের UINavigationBarপরিবর্তিত হয়েছে । আপনি নীচে প্রদর্শিত ছবিতে দেখতে পারেন:

এখানে চিত্র বর্ণনা লিখুন


দুটি সুন্দর লিঙ্ক আমি আপনার সাথে ভাগ করতে চাই। আরও তথ্যের জন্য আপনি এই লিঙ্কগুলির মাধ্যমে যেতে পারেন:

  1. আইওএস 7 ইউআই ট্রানজিশন গাইড
  2. আইওএস 7 এর জন্য আপনার অ্যাপ্লিকেশনটি কীভাবে আপডেট করবেন

বারটিন্টকলারের জন্য অ্যাপল ডকুমেন্টেশন বলেছেন:

এই রঙটি ডিফল্টরূপে স্বচ্ছ হিসাবে তৈরি করা হয় যদি না আপনি কোনও অংশে রূপান্তরিত সম্পত্তি সেট না করেন।

কোডের উদাহরণ :

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.navicationBar.tint कलर = [ইউআইসি কালার হোয়াইট কালার]; স্ব.ন.ভ্যানিভিগেশন বার.বার্টিন্ট কালার = [ইউআইকলার রঙ উইথ্রিড: 6.0 / 255.0 সবুজ: 12.0 / 255.0 নীল: 19.0 / 255.0 আলফা: 1.0]; তবে সবকিছু এখনও নীল।
1110

2
আমি এটি আগে পড়েছি তবে এই পরিবর্তনটি কেবল পাঠ্য কিন্তু তীর নয়। এটি এখনও নীল :(
1110

1
@ 1110: একবার দেখুন: টিন্ট রঙ ব্যবহার করে
ભાভিন

2
@ চেলসি: এই লাইনটি কেমন? :[self.navigationController.navigationBar setTitleTextAttributes:@{[UIFont fontWithName:@"YOURFONT" size:14], NSFontAttributeName}];
ভাভিন

4
ভুলে যাবেন না আপনি অ্যাপ্লিকেশনটিতে পুরো অ্যাপ্লিকেশনটির জন্য রঙিনটি পরিবর্তন করতে পারেন: [[ইউআইএনএভিগেশন বার উপস্থিতি] সেটটিন্ট কালার: [ইউআইসি কালার ব্ল্যাক কালার]];
সাইমন_স্মিলি

85

এখানে চিত্র বর্ণনা লিখুন

এই এক খুঁজে পেতে আমার প্রায় আধা দিন সময় নিয়েছে তবে এটি আমার জন্য কাজ করেছিল। নেভিগেশনকন্ট্রোলার সূচনা করে যে রুটভিউ কনট্রোলারের অভ্যন্তরে আমি এই কোডটি আমার ভিউডিডঅ্যাপার পদ্ধতির ভিতরে রেখেছি:

//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
যদি আপনার পিছনের তীরটির রং পরিবর্তন করতে সমস্যা হয় তবে এই স্নিপেটটি সমস্যার সমাধান করবে। সর্বনিম্ন, আপনার আসল রুটভিউ কনট্রোলারের সাথে যুক্ত কোডের শেষ লাইনটি লাগবে।
russes

হ্যাঁ, জন গতকালও আমি এটিতে প্রায় এক ঘন্টা নষ্ট করেছি। একটি সমস্যা (বড় সমস্যা) হ'ল ডকগুলি সমস্ত সম্ভাব্য বৈশিষ্ট্যগুলি নির্দেশ করার ক্ষেত্রে ভয়ানক ছিল। কোন তালিকা যেখানে তারা তালিকাবদ্ধ হতে পারে? TY।
অ্যালেক্স জাভাটোন

ধন্যবাদ @ জন এটি আমার কাস্টম রঙকে ওভারল্যাপ করছে, আপনি আমাকে কেন ব্যাখ্যা করতে পারেন?
বৈভব লিম্বানি

আমি মনে করি আপনার একটি নতুন প্রশ্ন তৈরি করা উচিত। আমি আপনার কোডটি না দেখলে এবং আপনি কী করছেন তা আমি আপনাকে বলতে পারি না। @ ম্যাকজিইক
জন রিসেলভাতো

3
ধন্যবাদ, এটি কাজ করেছে :)। তবে ইউআইটিএফটিঅ্যাট্রিবিউট টেক্সট কালার আইওএস 7 এ অবহেলা করা হয়েছে, এখন আপনার এনএসফোরগ্রাউন্ডকালআর্ট্রিবিউটনাম ব্যবহার করা উচিত
ওয়াইয়ামিল

37

সুইফট 3, আইওএস 10

অ্যাপ্লিকেশনটিতে বিশ্বব্যাপী রঙ নির্ধারণ করতে 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 ব্যবহার করে সি # বিকাশকারীদের জন্য এখানে একই সমাধান রয়েছে:

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

সুইফট / আইওএস 8

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

3
আসুন পাঠ্যঅ্যাট্রিবিটস = এনএস পরিবর্তনযোগ্য অভিধান (ক্ষমতা: 1) এখন এনএস পরিবর্তনযোগ্য অভিধানের সূচনা করার জন্য সঠিক কল।
জুলিয়ানসাদ

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

1
আপনি এই অ্যাপ্লিকেশনটি নিজেই অ্যাপডিলেজেটে সেট করতে পারেন বলে আমি এই পদ্ধতির পছন্দ করি এবং এটি উপস্থিতি প্রক্সি ব্যবহার করে।
রায়

8

UINavigationBarশিরোনামের রঙ পরিবর্তন করতে সঠিকভাবে এই কোডটি ব্যবহার করুন:

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

UITextAttributeTextColorসর্বশেষতম আইওএস 7 সংস্করণে হ্রাস করা হয়েছে। NSForegroundColorAttributeNameপরিবর্তে ব্যবহার করুন।


5

আপনি যদি শিরোনামের পাঠ্যের আকার এবং পাঠ্যের রঙ পরিবর্তন করতে চান তবে আপনাকে এর দুটি বস্তুর জন্য NSD অভিধান শিরোনাম পাঠ্যঅ্যাট্রিবিউট পরিবর্তন করতে হবে :

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

2

আমি মনে করি পূর্ববর্তী উত্তরগুলি সঠিক, এটি একই জিনিসটি করার অন্য একটি উপায়। কারও জন্য এটি দরকারী হয়ে ওঠে যদি আমি অন্যদের সাথে এখানে ভাগ করে নিচ্ছি। এইভাবে আপনি আইওএস 7-এ নববারের জন্য পাঠ্য / শিরোনামের রঙটি পরিবর্তন করতে পারেন:

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। আপনার ডিফল্ট পজিশনে (সেটিংস বর্ধিত কনট্রাস্ট, গা bold় পাঠ্য , বোতামের আকার ইত্যাদির জন্য সমস্ত সেটিংস রয়েছে) তা নিশ্চিত করুন নইলে আপনি কোনও পরিবর্তন দেখতে পাবেন না। একবার এটি করার পরে, সমস্ত রঙ পরিবর্তন কোড প্রত্যাশার মতো কাজ করা শুরু করে। আপনার এগুলি সমস্ত বন্ধ করার দরকার নেই, তবে আমি এটির আর অনুসরণ করি নি।


হুবহু আমার কি হয়েছে। "বোল্ড পাঠ্য" চালু থাকা অবস্থায় আমি বার বোতাম আইটেমের রঙিন রঙ পরিবর্তন করতে অক্ষম ছিলাম। এটা ভাল না। এখন আমাকে পরিবর্তে একটি গ্রাফিক ব্যবহার করতে হবে :-(
কেন

0

সুইফ্ট 5 / আইওএস 13

নিয়ামক শিরোনাম রঙ পরিবর্তন করতে:

UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.