অ্যাপডেলিগেট থেকে ইউআইএনএভিগেশন বারের পটভূমির রঙ কীভাবে পরিবর্তন করবেন


91

কীভাবে UINavigationBarব্যাকগ্রাউন্ড চিত্রটি পরিবর্তন করতে হয় তা আমি জানি

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nabbar"] forBarMetrics:UIBarMetricsDefault];

এবং আমি জানি যে কীভাবে বারের মধ্যে বিভিন্ন রঙে বার সেট করতে হয় Views..... এখন আমি ইমেজটি এর থেকে শক্ত রঙে না ব্যবহার করে ব্যাকগ্রাউন্ডের রঙটি পরিবর্তন করতে চাই app delegate। আমি প্রতিটি দর্শন থেকে এটি প্রতিটি সময় সেট করতে চাই না এবং আমি একটি লিখতে চাই না CGRect

আমি চেষ্টা করেছি [[UINavigationBar appearance] setBackgroundColor:[UIColor colorWithRed:33/255.0 green:34/255.0 blue:36/255.0 alpha:1.0]];কিন্তু আমি কাজ করি না এবং অ্যাপের প্রতিনিধিতে কাজ করে এমন কোনও কোড আমি খুঁজে পাচ্ছি না।

কেউ দয়া করে আমাকে সঠিক দিকে নির্দেশ করতে পারেন?

উত্তর:


203

তুমি ব্যবহার করতে পার [[UINavigationBar appearance] setTintColor:myColor];

আইওএস 7 যেহেতু আপনি সেট করতে হবে [[UINavigationBar appearance] setBarTintColor:myColor];এবং [[UINavigationBar appearance] setTranslucent:NO]

[[UINavigationBar appearance] setBarTintColor:myColor];
[[UINavigationBar appearance] setTranslucent:NO];

ধন্যবাদ, আপনি কি জানেন যে সাদা ডিফল্ট গ্রেডিয়েন্টটি কীভাবে একটি শক্ত রঙ তৈরি করতে শীর্ষ থেকে আসে?
জোনাথন থারফ্ট

4
tintColorগ্রেডিয়েন্টের সাথে থাকবে। আপনি যদি এই গ্রেডিয়েন্টটি না পেতে চান তবে আপনাকে আপনার ইউআইএনএভিগেশনবারকে সাবক্লাস করতে হবে বা উপস্থিতির জন্য একটি ইউআইআইমেজ তৈরি করতে হবে।
সেব থাইবাড

59
আইওএস 7 এ যা কাজ করে না, আমাকে ব্যবহার করতে হয়েছিলnavigationBar.barTintColor = myColor;
জুয়ান ডি লা টোর

4
translucentসম্পত্তি মাত্র আইওএস 6 এবং iOS 7. সুতরাং UIAppearance ব্যবহার সেট করা যাবে না [[UINavigationBar appearance] setTranslucent:NO]দেয়ার মাধ্যমে অ্যাপ্লিকেশান বিপর্যস্ত হবে NSInvalidArgumentExceptionত্রুটি। [self.navigationController.navigationBar setTranslucent:NO]আইবি ব্যবহার করে স্বচ্ছতা ব্যবহার বা অপসারণ করুন ।
স্যাম

4
সুইফ্ট সংস্করণ: UINavigationBar.appearance().barTintColor = myColor UINavigationBar.appearance().isTranslucent = false
fl034

103

পটভূমির রঙ পরিবর্তন করতে এবং রঙের জন্য নয় নিম্নলিখিত কোডের টুকরোটি কাজ করবে:

[self.navigationController.navigationBar setBarTintColor:[UIColor greenColor]];
[self.navigationController.navigationBar setTranslucent:NO];

4
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত, iOS7 এর জন্য পুরোপুরি কাজ করে।
joshuahornby10

আইওএস-এর সঠিক উত্তর 7.. আমার পক্ষে কাজ করা।
লন্ডনগুই

এই কাজটি করার প্রয়োজনীয়তা হ'ল স্বচ্ছলতা। গ্রহণযোগ্য উত্তরের যেহেতু অন্তর্ভুক্ত নেই, এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
ত্রিস্তান ওয়ার্নার-স্মিথ

4
কেবল পরিষ্কার করার জন্য, গৃহীত উত্তরগুলি অ্যাপডেলিগেটের জন্য এবং এটি ভিউ কন্ট্রোলারের মধ্যে রয়েছে।
ডিন

@ ডিন ঠিক বলেছেন স্বীকৃত উত্তর নতুন তৈরির জন্য কার্যকর হবে UIViewControllers, যখনই এটি যখনই ডাকা হবে তখন এটি প্রভাব প্রদর্শন করবে।
aramusss


15

সুইফট বাক্য গঠন:

    UINavigationBar.appearance().barTintColor = UIColor.whiteColor() //changes the Bar Tint Color

আমি কেবল এটি অ্যাপ্লিকেশনটিতে রেখেছি ফিনিশল্যাঞ্চিং উইথঅপশন এবং এটি অ্যাপ্লিকেশন জুড়ে রয়েছে


8

সুইফট :

self.navigationController?.navigationBar.barTintColor = UIColor.red
self.navigationController?.navigationBar.isTranslucent = false

6

আপনি সহজেই এক্সকোড 6.3.1 দিয়ে এটি করতে পারেন। দস্তাবেজের রূপরেখায় আপনার নেভিগেশনবারটি নির্বাচন করুন। বৈশিষ্ট্য পরিদর্শক নির্বাচন করুন। আনসার্ক ট্রান্সলুসেন্ট। আপনার পছন্দসই রঙে বার টিন্ট সেট করুন। সম্পন্ন!


ধন্যবাদ, আমি ওবিজেসি এবং সুইফটে কীভাবে এটি করতে পারি সে সম্পর্কে অনেকগুলি রেফারেন্স পেয়েছি, তবে আইবিতে এটি উপলব্ধ হওয়ার কোনও কথা উল্লেখ করেনি
নিক

3

অন্যান্য উত্তরের হিসাবে উল্লেখ করা হয়েছে, আপনি ব্যবহার করতে পারেন setTintColor:তবে আপনি একটি শক্ত রঙ চান এবং এটি রঙিন রঙিন আফ্রিককে সেট করা সম্ভব নয়।

সমাধানটি হ'ল প্রোগ্রামটিমেটিকভাবে একটি চিত্র তৈরি করা এবং সেই চিত্রটি সমস্ত নেভিগেশন বারের জন্য পটভূমি চিত্র হিসাবে সেট করা UIAppearance। চিত্রটির আকার সম্পর্কে, আমি নিশ্চিত না যে 1x1 পিক্সেল চিত্রটি কাজ করবে কিনা বা আপনার নেভিগেশন বারের সঠিক আকারের প্রয়োজন হবে। কীভাবে চিত্রটি তৈরি করতে হয় তা জানতে এই প্রশ্নের দ্বিতীয় উত্তরটি দেখুন।

একটি পরামর্শ হিসাবে, আমি এই ধরণের জিনিসগুলির সাথে অ্যাপের প্রতিনিধিটিকে "ওভারলোড" করতে পছন্দ করি না। আমি যা করতে চাই তা হ'ল AppearanceConfigurationকেবলমাত্র একটি সর্বজনীন পদ্ধতি সহ একটি ক্লাস তৈরি করা configureAppearanceযেখানে আমি চাই সমস্ত ইউআইএআইপিয়ারেন্স স্টাফ সেট করি এবং তারপরে আমি সেই অ্যাপটিকে ডেলিগেটের কাছ থেকে কল করি।


2

আপনি যে কোনও ভিউ কন্ট্রোলারে এই কোডটি ব্যবহার করে ইউআইএনএভিগেশন ব্যাকগ্রাউন্ড রঙ সেট করতে পারেন

self.navigationController.navigationBar.backgroundColor = [UIColor colorWithRed:10.0f/255.0f green:30.0f/255.0f blue:200.0f/255.0f alpha:1.0f];

2

সুইফটে 4.2 এবং এক্সকোড 10.1

আপনি আপনার অ্যাপ্লিকেশন থেকে আপনার সম্পূর্ণ প্রকল্পে সরাসরি নেভিগেশন বারের রঙ পরিবর্তন করতে পারেন।

ইন didFinishLaunchingWithOptions launchOptions:কোডের লাইন করার জন্য নিচের লেখার

UINavigationBar.appearance().tintColor = UIColor.white
UINavigationBar.appearance().barTintColor = UIColor(red: 2/255, green: 96/255, blue: 130/255, alpha: 1.0)

এখানে

টিন্ট কালার ব্যাকগ্রাউন্ড চিত্র যেমন ব্যাক বোতাম এবং মেনু লাইন চিত্র ইত্যাদি সেট করতে হয় (বাম এবং ডান মেনু চিত্রের নীচে দেখুন)

বারটিন্ট কালার নেভিগেশন বারের পটভূমির রঙের জন্য

আপনি যদি নির্দিষ্ট ভিউ নিয়ন্ত্রক নেভিগেশন বারের রঙ সেট করতে চান তবে কোডের নীচে লিখুন viewDidLoad()

//Add navigation bar colour
navigationController?.navigationBar.barTintColor = UIColor(red: 2/255, green: 96/255, blue: 130/255, alpha: 1.0)
navigationController?.navigationBar.tintColor = UIColor.white

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


-1

রঙ কোডটি এখানে সমস্যা is 195/255 ব্যবহার করার পরিবর্তে 0.7647 বা 195.f / 255.f ব্যবহার করুন সমস্যাটি ভাসাটি রূপান্তরিত করে সঠিকভাবে কাজ করছে না। সঠিক ভাসমান মান ব্যবহার করার চেষ্টা করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.