আইওএস 7 এ নেভিগেশন বারের রঙ কীভাবে পরিবর্তন করবেন?


213

আমি আইওএস 7 এ নেভিগেশন বারের রঙটি কীভাবে পরিবর্তন করব?

মূলত আমি টুইটার ন্যাভি বার (এর জন্য আপডেটেড টুইটার iOS7) এর মতো কিছু অর্জন করতে চাই । আমি এম্বেড-এ একটি এনএভি বারের উপরে view controller। আমি যা চাই তা হল শীর্ষে ইউটিলিটি বারের সাথে এনএভি বারের রঙ হালকা নীলতে পরিবর্তন করা। আমি আমার মধ্যে একটি বিকল্প খুঁজে পেতে পারে না storyboard



[[ইউআইএনএভিগেশন বার উপস্থিতি] সেটবার্টিন্ট কালার: [ইউআইকিওলোর ব্ল্যাক কালার]]; এই ওয়েলসটি আইওএস 7 এর পরে থেকে কাজ করবে
চন্দ্রমানি

1
এই টিউটোরিয়াল অনুসরণ appcoda.com/customize-navigation-status-bar-ios-7
Chandramani

উত্তর:


319

tintColorআইওএস .0.০ এ বারের জন্য আচরণের পরিবর্তন হয়েছে। এটি আর বারের পটভূমিকে প্রভাবিত করে না।

ডকুমেন্টেশন থেকে:

বারটিন্ট কালার ক্লাস রেফারেন্স

নেভিগেশন বারের পটভূমিতে প্রয়োগ করতে রঙিন রঙ।

@property(nonatomic, retain) UIColor *barTintColor

আলোচনা
এই রঙটি আপনি স্বচ্ছ সম্পত্তিকে সেট না করলেই ডিফল্টরূপে স্বচ্ছ হয়ে যায় NO

উপস্থিতি

আইওএস 7.0 এবং তার পরে পাওয়া যায়।

ইউআইএনএভিগেশনবারে ঘোষণা করা হয়েছে

কোড

NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7) {
    // iOS 7.0 or later   
    self.navigationController.navigationBar.barTintColor = [UIColor redColor];
    self.navigationController.navigationBar.translucent = NO;
}else {
    // iOS 6.1 or earlier
    self.navigationController.navigationBar.tintColor = [UIColor redColor];
}

আইওএস 7 ইউআই ট্রানজিশন গাইডে উল্লিখিত হিসাবে আমরা আইওএস সংস্করণ পরীক্ষা করতেও এটি ব্যবহার করতে পারি

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
        // iOS 6.1 or earlier
        self.navigationController.navigationBar.tintColor = [UIColor redColor];
    } else {
        // iOS 7.0 or later     
        self.navigationController.navigationBar.barTintColor = [UIColor redColor];
        self.navigationController.navigationBar.translucent = NO;
    }

এক্সিব ব্যবহার করে সম্পাদনা করুন

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


3
তবে আমি এই কোডটি কোথায় রাখতে পারি ?? আমি এই হাহাহা খুব নতুন। আমি এটিকে অ্যাপের প্রতিনিধিটির মধ্যে রেখে দিয়েছি এবং এটি সত্যিই অনেক কিছু করছে বলে মনে হয় না। যদিও এটি ঠিক জরিমানা করে।
প্যাট্রিসিও গেরেরা

1
ভিতরে viewController
Rajneesh071

1
আমি এটিকে আপনার ভিউকন্ট্রোলারের মধ্যে ভিডলিডলোড করব।
হালর

2
যদি (মেঝে (NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) এই পরীক্ষা ভালো হবে আপনি, উপর চালাচ্ছেন যা iOS সংস্করণ হিসাবে রূপান্তর গাইডে আপেল বলেছেন: developer.apple.com/library/ios/documentation/userexperience/...
ডেভিড থম্পসন

1
আপনি যদি ([স্ব.নিভিশনকন্ট্রোলআর.ইভিগেশন বার প্রতিক্রিয়া জানান: টোসলেক্টর: @ নির্বাচনকারী (সেটবার্টিন্টল কালার :)]) ভার্সন নম্বরটি বনাম আপনি বারটিন্টকলার সেট করতে পারেন কিনা তা পরীক্ষা করতে পারেন
সিম্পস অফ

129

পুরানো টুইটারের ন্যাভ বারের চেহারাটি পেতে, সাদা পাঠ্য সহ নীল পটভূমি the আসল প্রশ্নটি যা করেছে তা করা কেবল এক্সকোডে ইন্টারফেস বিল্ডার ব্যবহার করে করা খুব সহজ।

  • ডকুমেন্ট আউটলাইন ব্যবহার করে, আপনার নেভিগেশন বারটি নির্বাচন করুন।
  • অ্যাট্রিবিউটস ইন্সপেক্টর ইন, নেভিগেশন বার গ্রুপে, স্টাইলটি ডিফল্ট থেকে কালোতে পরিবর্তন করুন। এটি নেভিগেশন এবং স্থিতি বারগুলির পটভূমির রঙ কালো করে এবং তাদের পাঠ্যকে সাদা করে। সুতরাং অ্যাপ্লিকেশনটি চলাকালীন স্থিতি দণ্ডের ব্যাটারি এবং অন্যান্য আইকন এবং পাঠ্য সাদা দেখায়।
  • একই নেভিগেশন বার গোষ্ঠীতে বার টিন্টটিকে আপনার পছন্দ অনুসারে পরিবর্তন করুন।
  • আপনার নেভিগেশন বারে বার বাটন আইটেমগুলি থাকলে, সেগুলি এখনও তাদের পাঠ্যটি ডিফল্ট নীল রঙে দেখায়, সুতরাং বৈশিষ্ট্য পরিদর্শক, ভিউ গ্রুপে, রঙিনকে সাদা রঙে পরিবর্তন করুন।

আপনি যা চান তা তা পাওয়া উচিত। এখানে এমন একটি স্ক্রিনশট রয়েছে যাতে পরিবর্তনগুলি কোথায় করা যায় তা দেখতে এটি আরও সহজ করে দেয়।

আইওএস সিমুলেটারের ফলাফল সহ প্রয়োজনীয় পরিবর্তনগুলি কোথায় করা যায়

মনে রাখবেন যে কেবলমাত্র বার টিন্ট পরিবর্তন করা নেভিগেশন বারে বা স্ট্যাটাস বারে পাঠ্যের রঙ পরিবর্তন করে না। স্টাইলটিও পরিবর্তন করা দরকার।


আইওএস 9 এর জন্য কালো নির্বাচন করা
অবহিত

@ রব 85 আমি এখনই এক্সকোডের সামনে নেই, তবে যখন এক্সকোড 7 (আইওএস 9 সহ) প্রকাশিত হয়েছিল তখন আমি যাচাই করেছিলাম যে এই নির্দেশাবলী এখনও আপ টু ডেট ছিল। ন্যাভিগেশন বারটি নির্বাচিত হয়েছে কিনা তা নিশ্চিত করুন, কালো স্টাইলটি নেভিগেশন বারের বৈশিষ্ট্য পরিদর্শকের মধ্যে থাকা উচিত।
অ্যালোনডো

2
@ Rob85 আমি করেছি চেক করা অ্যাপলের বিকাশকারী ওয়েবসাইট, এবং শৈলী Defaultএবং Blackএখনও আইওএস 9. পাওয়া যায় অবচিত বেশী BlackOpaqueএবং BlackTranslucentযার মধ্যে একটি সমন্বয় দ্বারা প্রতিস্থাপিত হয়েছে Blackশৈলী এবং অস্বচ্ছ টিক-বাক্স। অ্যাপল এর বিকাশকারী ওয়েবসাইটে
ইউআইবারস্টাইল

দুঃখিত @ অ্যালোনডো আপনি একেবারে সঠিক, আমি ন্যাভিগেশন কন্ট্রোলারের ন্যাভিগেশন বারে ক্লিক করছিলাম নথির আউটলাইনটিতে কেন আমি এটি দেখতে পেলাম না। আমি যে কালোটিকে অবহেলা করে দেখছি তা সিমুলেটেড মেট্রিক্স>> স্ট্যাটাস বারে ছিল। আপনার উত্তরের জন্য ধন্যবাদ
রব 85

@ রব 85 দুর্দান্ত! আমাকে জানতে দেওয়ার জন্য ধন্যবাদ।
অ্যালোনডো

76
self.navigationBar.barTintColor = [UIColor blueColor];
self.navigationBar.tintColor = [UIColor whiteColor];
self.navigationBar.translucent = NO;

// *barTintColor* sets the background color
// *tintColor* sets the buttons color

4
এবং আমি এই কোডটি ঠিক কোথায় রাখতে পারি ?? সেখানে নবজাতকের প্রশ্নের জন্য দুঃখিত হাহাহা
প্যাট্রিসিও গেররা

1
কোডটি ন্যাভিগেশন কন্ট্রোলারের
পিএনরে

2
আইওএস 9-এ, বারটিন্ট কালারকে কালোতে সেট করা সময়, ডিভাইসের নাম এবং ব্যাটারিটিকেও কালো করে তুলবে যাতে আপনি এগুলি দেখতে না পান। এটি এড়াতে বারটিন্টকলার ব্যবহার করার পরিবর্তে, স্ব.নাভিগেশনকন্ট্রোলআরাইভেশনবার, বার্স স্টাইল = ইউআইবার স্টাইলব্ল্যাক ব্যবহার করুন;
TheJeff

46

একটি নেভিগেশন ভিত্তিক অ্যাপে আপনি কোডটি অ্যাপডেলিগেটে রাখতে পারেন। আরও বিশদ কোড হতে পারে:

// Navigation bar appearance (background and title)

[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor titleColor], NSForegroundColorAttributeName, [UIFont fontWithName:@"FontNAme" size:titleSize], NSFontAttributeName, nil]];

[[UINavigationBar appearance] setTintColor:[UIColor barColor]];

// Navigation bar buttons appearance

[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor textBarColor], NSForegroundColorAttributeName, shadowColor, NSShadowAttributeName, [UIFont fontWithName:@"FontName" size:titleSize], NSFontAttributeName, nil];

6
যোগ [[UINavigationBar appearance] setBarTintColor:[UIColor barColor]];আইওএস 7 এর জন্য
সামিন

24

ইন viewDidLoad, সেট:

    self.navigationController.navigationBar.barTintColor = [UIColor blueColor];

blueColorআপনার পছন্দসই রঙে ( ) পরিবর্তন করুন ।


18

দ্রুত পরিবর্তন নেভিগেশন বারের রঙের জন্য:

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

শিরোনাম হরফ, আকার, রঙ পরিবর্তন করুন:

self.title = "title"
self.navigationController?.navigationBar.titleTextAttributes = [
        NSAttributedString.Key.foregroundColor : UIColor.white,
        NSAttributedString.Key.font : UIFont(name: "Futura", size: 30)!
    ]

14

আইওএস 7-এ আপনাকে অবশ্যই -বার্টিন্ট কালার সম্পত্তিটি ব্যবহার করতে হবে:

navController.navigationBar.barTintColor = [UIColor barColor];

13

আপনি যদি একটি হেক্স কোড ব্যবহার করতে চান তবে এটি করার সর্বোত্তম উপায়।

প্রথমে এটি আপনার শ্রেণীর শীর্ষে সংজ্ঞা দিন:

#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

তারপরে "অ্যাপ্লিকেশনটি ফিনিশলঞ্চিং উইথঅপশনস" এর ভিতরে রাখুন, এটি লিখুন:

[[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x00b0f0)];

আপনাকে 00b0f0 এর জায়গায় হেক্স কোড রাখুন।


1
[ইউআইএনএভিগেশন বার উপস্থিতি] খুব সহায়ক ছিল।
কেন

11

আপনি iOS6 সমর্থন করার জন্য এবং iOS7 প্রয়োজন তাহলে আপনার এই ব্যবহার সেই নির্দিষ্ট হালকা নীল পেতে UIViewController :

- (void)viewDidLoad {
    [super viewDidLoad];
    NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
    if ([[ver objectAtIndex:0] intValue] >= 7) {
        self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:89/255.0f green:174/255.0f blue:235/255.0f alpha:1.0f];
        self.navigationController.navigationBar.translucent = NO;
    }else{
        self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:89/255.0f green:174/255.0f blue:235/255.0f alpha:1.0f];
    }
}

3
আইওএস On-এ: স্বয়ং-ন্যাভিগেশন কন্ট্রোলআর.ইভিগেশনবার.বারটিন্টকালার হল বার রঙ এবং স্বয়ং-নেভিগেশন-নিয়ন্ত্রণ নথিভুক্তকরণ বার.টিন্ট কালার বাটন টেক্সট রঙ (পিছনে, সম্পন্ন ...)।
IgniteCoders

10

আমি এখানে যে উত্তরগুলি দেখেছি তার চেয়ে এটি আসলে সহজ:

1) Just make sure you select the navigation bar on the Navigation control. 
2) Select the color you want in the bar tint.
3) You have other options too, and/or individually on each view (just play with it).

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


ধন্যবাদ, আমি এই মাসগুলি আগে চারপাশে খেলতে গিয়ে পরিবর্তিত হয়েছি এবং কীভাবে এটি পরিবর্তন করতে হবে তা বুঝতে পারি না!
প্রতিসম

সমস্যা নেই, খুশী আমি কাউকে সাহায্য করতে পারি
pqsk

আমি মনে করি এটিই সর্বাধিক সরাসরি উত্তর! ধন্যবা
Ispas Claudiu

সমস্যা নেই. খুশি এটি এখনও সহায়ক
pqsk

5

রজনী0071 এর কোড সম্পূর্ণ করতে আপনি নেভিগেশন বারের শিরোনাম রঙ (এবং আপনি চাইলে) সেট করতেও চাইতে পারেন যেহেতু ডিফল্ট আচরণটি আইওএস 6 থেকে 7 এ পরিবর্তিত হয়েছে:

NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7)
{
    self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
    self.navigationController.navigationBar.translucent = NO;
    NSMutableDictionary *textAttributes = [[NSMutableDictionary alloc] initWithDictionary:mainNavController.navigationBar.titleTextAttributes];
    [textAttributes setValue:[UIColor whiteColor] forKey:UITextAttributeTextColor];
    self.navigationController.navigationBar.titleTextAttributes = textAttributes;
}
else
{
    self.navigationController.navigationBar.tintColor = [UIColor blackColor];
}

5

আপনার ViewContorller বা আপনার মধ্যে কেবল এই কোডটি যুক্ত করুনAppDelegate

if([[[UIDevice currentDevice] systemVersion] floatValue] < 7.0)
{
    //This is For iOS6
    [self.navigationController.navigationBar setTintColor:[UIColor yellowColor]];
}
else
{
    //This is For iOS7
    [self.navigationController.navigationBar setBarTintColor:[UIColor yellowColor]];
}

4
//You could place this code into viewDidLoad
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.navigationController.navigationBar.tintColor = [UIColor redColor];
    //change the nav bar colour
    self.navigationController.view.backgroundColor = [UIColor redColor];
    //change the background colour
    self.navigationController.navigationBar.translucent = NO;
 }   
//Or you can place it into viewDidAppear
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:(BOOL)animated];
    self.navigationController.navigationBar.tintColor = [UIColor redColor];
    //change the nav bar colour
    self.navigationController.view.backgroundColor = [UIColor redColor];
    //change the background colour
    self.navigationController.navigationBar.translucent = NO;
}

4

নেভিগেশন ভিত্তিক অ্যাপ্লিকেশনটিতে আপনি রঙ পরিবর্তন করতে পারেন

NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7) {
    self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:19.0/255.0 green:86.0/255.0 blue:138.0/255.0 alpha:1];
    self.navigationController.navigationBar.translucent = NO;
} else {
    self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:19.0/255.0 green:86.0/255.0 blue:138.0/255.0 alpha:1];
}

1
আইওএস 7 এ টিন্টকলার সম্পত্তি পরিবর্তন করা বারের পটভূমির রঙ পরিবর্তন করার ফলে আর প্রভাব ফেলবে না। আইওএস 7-এ টিন্টের রঙটি কেবলমাত্র বারবটন আইটেম ইত্যাদির পাঠ্যের রঙকে প্রভাবিত করে
পাস্কাল বেয়ার

4
#define _kisiOS7 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)


  if (_kisiOS7)
    {
        [[UINavigationBar appearance] setBarTintColor:[UIcolor redcolor]];
    }
    else
    {
        [[UINavigationBar appearance] setBackgroundColor:[UIcolor blackcolor]];
        [[UINavigationBar appearance] setTintColor:[UIcolor graycolor]];
    }

3

এই প্রশ্ন এবং এই উত্তরগুলি সহায়ক। তাদের সাথে আমি navigationBarসাদা শিরোনাম এবং বোতামের পাঠ্য সহ আমার পছন্দসই গা dark় নীল রঙ সেট করতে সক্ষম হয়েছি ।

তবে আমারও ঘড়ি, ক্যারিয়ার, সিগন্যাল শক্তি ইত্যাদি পরিবর্তন করে সাদা করতে হবে। কালো কেবল গা the় নীল সাথে যথেষ্ট বিপরীতে নয়।

আমি আগের উত্তর এক যে সমাধান উপেক্ষিত হতে পারে, কিন্তু আমি আমার উপরের স্তর এই লাইন যোগ করে এই পরিবর্তন করতে সক্ষম হন viewController'র viewDidLoad:

[self.navigationController.navigationBar setBarStyle:UIStatusBarStyleLightContent];

UIStatusBarStyleLightContentকাজ করে, তবে এটির জন্য সঠিক এনামটি মনে setBarStyle:হয়UIBarStyleBlack
কলিন অ্যালেন


3

রঙের জন্য:

[[UINavigationBar appearance] setBarTintColor:[UIColor blackColor]];

চিত্রের জন্য

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigationBar_320X44.png"] forBarMetrics:UIBarMetricsDefault];
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.