আইফোন নেভিগেশন বার শিরোনাম পাঠ্যের রঙ


283

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

আমি navigationItem.titleViewএকটি ইমেজ ব্যবহার করে পদ্ধতির সম্পর্কে সচেতন । যেহেতু আমার নকশা দক্ষতা সীমাবদ্ধ এবং আমি মানক চকচকে পেতে ব্যর্থ হলাম, আমি পাঠ্যের রঙ পরিবর্তন করতে পছন্দ করি।

যে কোনও অন্তর্দৃষ্টি অনেক প্রশংসা হবে।


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

1
এরিক: আমি আমার উত্তর সম্পর্কে একটি নোট রেখেছি। আমি আপনার কোডটি সহ আমার উত্তরটি আপডেট করব তবে আমি আপনার ভোট গ্রহণ করতে চাই না। চতুর সমাধান, বিটিডব্লিউ।
স্টিভেন ফিশার

উত্তর:


423

আধুনিক পদ্ধতি

পুরো ন্যাভিগেশন কন্ট্রোলারের জন্য আধুনিক উপায় ... আপনার নেভিগেশন নিয়ন্ত্রকের রুট ভিউ লোড হওয়ার পরে এটি একবার করুন।

[self.navigationController.navigationBar setTitleTextAttributes:
   @{NSForegroundColorAttributeName:[UIColor yellowColor]}];

যাইহোক, পরবর্তী মতামতগুলিতে এর কোনও প্রভাব আছে বলে মনে হয় না।

ক্লাসিক পদ্ধতির

পুরানো উপায়, প্রতি ভিউ কন্ট্রোলার (এই ধ্রুবকগুলি আইওএস 6 এর জন্য, তবে আইওএস 7 এর উপস্থিতি নিয়ন্ত্রক প্রতি এটি করতে চাইলে আপনি একই পন্থাটি দেখতে চাই তবে বিভিন্ন ধ্রুবক সহ):

আপনি একটি ব্যবহার করতে হবে UILabelযেমন titleViewএর navigationItem

লেবেলটি করা উচিত:

  • একটি পরিষ্কার ব্যাকগ্রাউন্ড রঙ ( label.backgroundColor = [UIColor clearColor])।
  • সাহসী 20pt সিস্টেম ফন্ট ( label.font = [UIFont boldSystemFontOfSize: 20.0f]) ব্যবহার করুন ।
  • 50% আলফা ( label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]) সহ কালো ছায়া রয়েছে ।
  • আপনি পাঠ্য প্রান্তিককরণটিও পাশাপাশি কেন্দ্রে সেট করতে চাইবেন label.textAlignment = NSTextAlignmentCenter( UITextAlignmentCenterপুরানো এসডিকে)।

লেবেল পাঠ্যের রঙটি আপনার পছন্দমতো রঙ পছন্দ করতে সেট করুন। আপনি এমন একটি রঙ চান যা পাঠ্যকে ছায়ায় মিশ্রিত করে না, যা পড়তে অসুবিধা হবে।

আমি এটি পরীক্ষার এবং ত্রুটির মধ্য দিয়ে কার্যকর করেছি, তবে আমি যে মানগুলি নিয়ে এসেছি সেগুলি চূড়ান্তভাবে খুব সহজ তাদের পক্ষে অ্যাপল যেটি বেছে নিয়েছিল তা নয়। :)

আপনি এই যাচাই করতে চান তাহলে, এই কোডটি ড্রপ initWithNibName:bundle:মধ্যে PageThreeViewController.mএর অ্যাপলের Navbar হল নমুনা । এটি পাঠকে একটি হলুদ লেবেল দিয়ে প্রতিস্থাপন করবে। রঙ বাদে এটি অ্যাপলের কোড দ্বারা উত্পাদিত মূল থেকে পৃথক হওয়া উচিত।

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self)
    {
        // this will appear as the title in the navigation bar
        UILabel *label = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
        label.backgroundColor = [UIColor clearColor];
        label.font = [UIFont boldSystemFontOfSize:20.0];
        label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
        label.textAlignment = NSTextAlignmentCenter;
                           // ^-Use UITextAlignmentCenter for older SDKs.
        label.textColor = [UIColor yellowColor]; // change this color
        self.navigationItem.titleView = label;
        label.text = NSLocalizedString(@"PageThreeTitle", @"");
        [label sizeToFit];
    }

    return self;
}

সম্পাদনা: এছাড়াও, নীচে এরিক বি এর উত্তর পড়ুন। আমার কোডটি প্রভাবটি দেখায়, তবে তার কোডটি বিদ্যমান ভিউ কন্ট্রোলারের উপর এটিকে ফেলে দেওয়ার সহজতর উপায় সরবরাহ করে।


2
আপনি যদি লেবেল ফ্রেমটি ব্যবহার করে এর পাঠ্যের আকারের সাহায্যে সেট করেন তবে sizeWithFont:এটি যাদুতে স্ট্যান্ডার্ড লেবেলের স্বয়ংক্রিয় প্রান্তিককরণ আচরণ করবে on
গ্রাহাম্পার্কস

1
তবে আপনি যদি সাইজটিওফিট ব্যবহার করেন তবে আপনি স্বয়ংক্রিয় কাটাটি হারাবেন।
স্টিভেন ফিশার

3
দ্রষ্টব্য: এটি কাস্টম শিরোনাম সেট করার পুরানো উপায়, আমি এরিক বি এর উত্তর পড়ার পরামর্শ দিই
এলিয়া পামমে

1
সাইজটিফিট কাজ করে, তাই আপডেট উত্তর। এছাড়াও, এরিক বি এর উত্তর পড়তে নোট যুক্ত করুন।
স্টিভেন ফিশার

1
label.textAlignment = UITextAlignmentCenter iOS6.0 যেহেতু অনুমোদিত হয়নি হয়েছে, NSTextAlignmentCenter পরিবর্তে ব্যবহার
জ্যাসপার

226

আমি জানি এটি একটি বেশ পুরানো থ্রেড, তবে আমি মনে করি এটি নতুন ব্যবহারকারীদের জন্য জেনে রাখা কার্যকর হবে যে আইওএস 5 শিরোনামের বৈশিষ্ট্য প্রতিষ্ঠার জন্য একটি নতুন সম্পত্তি নিয়ে আসে।

আপনি setTitleTextAttributesফন্ট, রঙ, অফসেট এবং ছায়া রঙ নির্ধারণের জন্য ইউআইএনএভিগেশন বারগুলি ব্যবহার করতে পারেন ।

এছাড়াও আপনি সমস্ত UINavigationBarsঅ্যাপ্লিকেশন জুড়ে একই ডিফল্ট ইউআইএনএভিগেশন বারের শিরোনাম পাঠ্য বৈশিষ্ট্য সেট করতে পারেন ।

উদাহরণস্বরূপ যেমন:

NSDictionary *navbarTitleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                            [UIColor whiteColor],UITextAttributeTextColor, 
                                            [UIColor blackColor], UITextAttributeTextShadowColor, 
                                            [NSValue valueWithUIOffset:UIOffsetMake(-1, 0)], UITextAttributeTextShadowOffset, nil];

[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];

11
'UITextAttributeTextColor' আইওএস 7 আইওএস 7 চাবিকাঠি 'NSForegroundColorAttributeName' থেকে অবচিত
কেলার

1
দ্রষ্টব্য যে এটি সমস্ত নেভিগেশন বারগুলিকে পরিবর্তন করবে, যা সাধারণত আপনি যা চান তা চাই।
অ্যাশ

1
দয়া করে এটিকে সঠিক উত্তর হিসাবে চিহ্নিত করুন - এই পদ্ধতিগুলির সাথে উপরের ইউআইএলবেল পদ্ধতি অপ্রয়োজনীয়।
মাইক ফোক

180

আইওএস 5 এ আপনি ন্যাভিগেশনবার শিরোনামের রঙটি এই পদ্ধতিতে পরিবর্তন করতে পারেন:

navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor yellowColor]};

8
@ বার্টসিম্পসন আমি সম্মত! আইওএস 7 এর জন্য আপডেট UITextAttributeTextColorকরুন NSForegroundColorAttributeName। একটি যাদুমন্ত্র মত কাজ করে!
জন এর্ক

এইটা কাজ করে! আমি যা বুঝতে চাই তা কীভাবে ?! শিরোনাম পাঠ্যপ্রেমায় একটি এনএসএসআরটিং ইউআইকিট সংযোজন রেফারেন্সের অধীনে বর্ণিত 'পাঠ্য গুণাবলীর জন্য কী'-তে বর্ণিত কীগুলির পূর্বনির্ধারিত সেটগুলির সাথে একটি অভিধান বাদে। আপনি উল্লিখিত কীটি এটি কীভাবে নেয়।
অ্যাসেন

... এবং যেহেতু এটি কাজ করছে, আমি কীভাবে 'ডিফল্ট' রঙিনতা পেতে পারি?
অ্যাসেন

সেটিং self.navigationController.navigationBar.tintColorআমার পক্ষে কাজ করে না। এটা করেছে।
JRam13

127

স্টিভেন ফিশারের উত্তরের ভিত্তিতে আমি কোডের এই অংশটি লিখেছি:

- (void)setTitle:(NSString *)title
{
    [super setTitle:title];
    UILabel *titleView = (UILabel *)self.navigationItem.titleView;
    if (!titleView) {
        titleView = [[UILabel alloc] initWithFrame:CGRectZero];
        titleView.backgroundColor = [UIColor clearColor];
        titleView.font = [UIFont boldSystemFontOfSize:20.0];
        titleView.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];

        titleView.textColor = [UIColor yellowColor]; // Change to desired color

        self.navigationItem.titleView = titleView;
        [titleView release];
    }
    titleView.text = title;
    [titleView sizeToFit];
}

এই কোডটির সুবিধা হ'ল ফ্রেমের সাথে সঠিকভাবে ডিল করার পাশাপাশি আপনি যদি আপনার নিয়ামকের শিরোনাম পরিবর্তন করেন তবে কাস্টম শিরোনাম দৃশ্যটিও আপডেট হবে। এটি ম্যানুয়ালি আপডেট করার দরকার নেই।

আর একটি বড় সুবিধা হ'ল এটি কাস্টম শিরোনাম রঙ সক্ষম করার জন্য সত্যই সহজ করে তোলে। আপনাকে যা করতে হবে তা হ'ল নিয়ন্ত্রকের সাথে এই পদ্ধতিটি যুক্ত করা।


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

@ সিনিয়র রিচি আপনার কোনও কোডটি কাস্টম নেভিগেশন নিয়ন্ত্রকের মধ্যে রাখা উচিত নয়। আপনার এটি সমস্ত দর্শনের নিয়ামকের মধ্যে রাখা উচিত যেখানে আপনাকে শিরোনামের রঙ পরিবর্তন করতে হবে। আপনি সম্ভবত একটি কাস্টম নেভিগেশন নিয়ামক চান না।
এরিক বি

আমার জন্য কাজ করে না। আমি তার পদ্ধতি, কারণ আমি ব্যবহার [UINavigationBar চেহারা] মনে .. (কাজ নাও কারণ ট্যাগ titleView সবসময় শূন্য হয়)
Matej

1
আপনি যদি আইওএস 5 বা তার পরে থাকেন তবে আপনার নীচের বিয়োগের উত্তরটি পড়া উচিত। এখানে একটি ওয়ান-লাইনার রয়েছে যা সূক্ষ্মভাবে কাজ করে এবং রিজার্ভেশনে থাকে।
অ্যালগাল

আমাদের স্ব.টাইটেল = @ "আমাদের স্ট্রিং" যুক্ত করতে হবে; ViewDidLoad.91 এ কেবল উপরের কোডটিই কাজ করে।
হরি 1251

40

উপরোক্ত পরামর্শগুলির বেশিরভাগটি এখন iOS 7 ব্যবহারের জন্য অবচিত করা হয়েছে -

NSDictionary *textAttributes = [NSDictionary dictionaryWithObjectsAndKeys: 
                               [UIColor whiteColor],NSForegroundColorAttributeName, 
                               [UIColor whiteColor],NSBackgroundColorAttributeName,nil];

self.navigationController.navigationBar.titleTextAttributes = textAttributes;
self.title = @"Title of the Page";

এছাড়াও, বিভিন্ন পাঠ্য বৈশিষ্ট্য যা সেট করা যেতে পারে তার জন্য এনএসএট্রিবিউটেড স্ট্রিংক.কে চেকআউট করুন।


38

আইওএস 7 এবং 8 এ, আপনি সবুজ বলতে শিরোনামের রঙ পরিবর্তন করতে পারেন

self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor greenColor] forKey:NSForegroundColorAttributeName];

6
সুইফট:self.navigationController!.navigationBar.titleTextAttributes = NSDictionary(object: UIColor.whiteColor(), forKey: NSForegroundColorAttributeName) as [NSObject : AnyObject]
বায়রন কোটিসি

সুইফট 2-তে আপডেট হওয়ার পরে @ বায়রনকোটিসি আমার নীচের ত্রুটি রয়েছে: '[এনএসওজেক্ট: যেকোনওজেক্ট]' টাইপের একটি মান '[স্ট্রিং: যেকোনওজেক্ট]?'
জর্জি ক্যাসারিগো

2
সুইফট ২.০-তে খুব সহজself.navigationController!.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]
কেভিন ডিট্রাগলিয়া

24

প্রশ্নটি আপ টু ডেট রাখার জন্য আমি অ্যালেক্স আরআর সলিউশন যুক্ত করব , তবে সুইফটে :

self.navigationController.navigationBar.barTintColor = .blueColor()
self.navigationController.navigationBar.tintColor = .whiteColor()
self.navigationController.navigationBar.titleTextAttributes = [
    NSForegroundColorAttributeName : UIColor.whiteColor()
]

যার ফলাফল:

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


হুঁ, সম্ভবত এটি সুইফট ২.০ এর জন্য কাজ করে না। আমাকে ডাবল চেক করুন আগ্রাসনের দরকার নেই যদিও।
মিশাল

দুঃখিত মিশাল, আমি ভাবছিলাম যে রসিকতা হিসাবে! আক্রমণাত্মক কিছু হিসাবে না! !: [AnyObject NSObject] self.navigationController .navigationBar.titleTextAttributes = NSDictionary (বস্তু:: UIColor.whiteColor (), forKey NSForegroundColorAttributeName) হিসাবে কি আমার জন্য কাজ আরো ভালো ছিল
Radu

এই নিম্নলিখিত লাইনটি যুক্ত করুন: ইউআইএনএভিগেশনবার.অরূপ ()। বারস্টাইল = ইউআইবার্স স্টাইল.ব্ল্যাক এই লাইনের আগে: ইউআইএনএভিগেশনবার.অ্যাপিয়ারেন্স ()। টিন্ট কালার = ইউআইসিওলর.ওয়াইট কালার () টিন্ট কালার কাজ করতে!
ত্রিআইটিস্ট 26'16

2
সুইফট ৪.০ তে: স্ব.নিভিগেশন কন্ট্রোলার? .ন্যাভিগেশনবার.টাইটেলটেক্সট অ্যাট্রিবিউটস = [এনএস্যাট্রিবিউটেডস্ট্রিংকি.ফোরগ্রাউন্ড কালার: ইউআইকিওলোর.ওয়াইট]
অভি মুক্তিশ্বরর

14

পদ্ধতি 1 , এটি আইবিতে সেট করুন:

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

পদ্ধতি 2 , কোডের একটি লাইন:

navigationController?.navigationBar.barTintColor = UIColor.blackColor()

পদ্ধতি 2 কাজ করে না। titleTextAttributesকেবলমাত্র
নিয়েই

13

আপনি যদি কোনও পৃষ্ঠায় রঙ পরিবর্তন করার চেষ্টা করছেন তেহা দ্বারা সমাধানটি ভাল কাজ করে তবে আমি প্রতিটি পৃষ্ঠায় রঙ পরিবর্তন করতে সক্ষম হতে চাই। আমি কিছু ছোট পরিবর্তন করেছি যাতে এটি এ এর সমস্ত পৃষ্ঠার জন্য কাজ করেUINavigationController

NavigationDelegate.h

//This will change the color of the navigation bar
#import <Foundation/Foundation.h>
@interface NavigationDelegate : NSObject<UINavigationControllerDelegate> {
}
@end

NavigationDelegate.m

#import "NavigationDelegate.h"
@implementation NavigationDelegate

- (void)navigationController:(UINavigationController *)navigationController 
      willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
    CGRect frame = CGRectMake(0, 0, 200, 44);//TODO: Can we get the size of the text?
    UILabel* label = [[[UILabel alloc] initWithFrame:frame] autorelease];
    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont boldSystemFontOfSize:20.0];
    label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
    label.textAlignment = UITextAlignmentCenter;
    label.textColor = [UIColor yellowColor];
    //The two lines below are the only ones that have changed
    label.text=viewController.title;
    viewController.navigationItem.titleView = label;
}
@end

13

আইওএস 5 এর পরে আমাদের শিরোনাম পাঠ্য রঙ এবং নেভিগেশন বারের ফন্ট সেট করতে হবে শিরোনামটেক্সটঅ্যাট্রিবিউট অভিধান (ইউআইভিভিগেশন নিয়ামক শ্রেণীর রেফারেন্সে পূর্বনির্ধারিত অভিধান)।

 [[UINavigationBar appearance] setTitleTextAttributes:
 [NSDictionary dictionaryWithObjectsAndKeys:
  [UIColor blackColor],UITextAttributeTextColor, 
[UIFont fontWithName:@"ArialMT" size:16.0], UITextAttributeFont,nil]];

13

সুইফট সংস্করণ

আমি আপনার বেশিরভাগ লোককে উদ্দেশ্যমূলক_সি সংস্করণের উত্তরগুলি উপস্থাপন করেছি

যার প্রয়োজন হয় তার জন্য আমি সুইফট ব্যবহার করে এই ফাংশনটি প্রয়োগ করতে চাই।

ভিউডিডলোডে

1. নেভিগেশনবারের পটভূমি রঙ হয়ে উঠুন (উদাহরণস্বরূপ: নীল)

self.navigationController?.navigationBar.barTintColor = UIColor.blueColor()

২. নেভিগেশনবারের পটভূমিটি চিত্রে পরিণত হয় (উদাহরণস্বরূপ: ABC.png)

let barMetrix = UIBarMetrics(rawValue: 0)!

self.navigationController?.navigationBar
      .setBackgroundImage(UIImage(named: "ABC"), forBarMetrics: barMetrix)

৩. নেভিগেশনবার শিরোনাম পরিবর্তন করতে (উদাহরণস্বরূপ: [হরফ: ফুটুরা, 10] [রঙ: লাল])

navigationController?.navigationBar.titleTextAttributes = [
            NSForegroundColorAttributeName : UIColor.redColor(),
            NSFontAttributeName : UIFont(name: "Futura", size: 10)!
        ]

(ইঙ্গিত 1: ইউআইএফন্টের পরে "!" চিহ্নটি ভুলে যাবেন না)

(ইঙ্গিত 2: শিরোনাম পাঠ্যের অনেকগুলি বৈশিষ্ট্য রয়েছে, কমান্ডটি "NSFontAttributeName" ক্লিক করুন আপনি ক্লাসে প্রবেশ করতে পারেন এবং কী-নাম এবং তাদের প্রয়োজনীয় বিষয়গুলি দেখতে পারেন)

আমি আশা করি আমি সাহায্য করতে পারি!: ডি


10

যে কোনও ভিউ নিয়ন্ত্রক ভিউডিডলড বা ভিউউইল অ্যাপয়ার পদ্ধতিতে নীচের কোডটি ব্যবহার করুন।

- (void)viewDidLoad
{
    [super viewDidLoad];

    //I am using UIColor yellowColor for an example but you can use whatever color you like   
    self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor yellowColor]};

    //change the title here to whatever you like
    self.title = @"Home";
    // Do any additional setup after loading the view.
}


8

এটি স্টিভেনসের উপর ভিত্তি করে আমার সমাধান

পাঠ্য দৈর্ঘ্যের উপর নির্ভর করে যদি অবস্থানটি সামঞ্জস্য করতে কেবল আসল পার্থক্য রাখি তবে আপেল কীভাবে এটি করে

UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(([self.title length] < 10 ? UITextAlignmentCenter : UITextAlignmentLeft), 0, 480,44)];
titleLabel.backgroundColor = [UIColor clearColor];
titleLabel.font = [UIFont boldSystemFontOfSize: 20.0f];
titleLabel.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
titleLabel.textAlignment = ([self.title length] < 10 ? UITextAlignmentCenter : UITextAlignmentLeft);
titleLabel.textColor = [UIColor redColor];
titleLabel.text = self.title;
self.navigationItem.titleView = titleLabel;
[titleLabel release];

আপনি আপনার ফন্টের আকারের উপর নির্ভর করে 10 মানটি সামঞ্জস্য করতে চাইতে পারেন


6

আমি আমার এনএভি বোতামটি পাঠ্যটিকে কেন্দ্রের বাইরে ফেলে দিয়ে সমস্যার মধ্যে পড়েছি (যখন আপনার কেবলমাত্র একটি বোতাম রয়েছে)। এটি ঠিক করতে আমি ঠিক ঠিক এর মতো আমার ফ্রেমের আকার পরিবর্তন করেছি:

CGRect frame = CGRectMake(0, 0, [self.title sizeWithFont:[UIFont boldSystemFontOfSize:20.0]].width, 44);

6

আমি নেভিগেশন বারের পটভূমি চিত্র এবং বাম বোতাম আইটেমটি কাস্টমাইজ করেছি এবং ধূসর শিরোনাম পটভূমিতে ফিট করে না। তারপরে আমি ব্যবহার করি:

[self.navigationBar setTintColor:[UIColor darkGrayColor]];

রঙিন রঙ ধূসর করতে। আর শিরোনাম এখন সাদা! এটাই সেটা যা আমি চাই.

এছাড়াও সাহায্য আশা করি :)


দুর্দান্ত তবে এটি কেবল পাঠ্যকে সাদা করার জন্য কাজ করে। এমনকি [ইউআইকলার হোয়াইট কালার] দিয়ে নাভবারে রঙিন করা পাঠ্যের রঙকে সাদা করে তোলে।
cschuff

6

শিশু নাবারকে চাপ দেওয়ার সময় বা ট্যাববারগুলিতে শিরোনাম দেখানোর সময় এটি ব্যবহৃত হয় বলে সেলফ.টাইটেল সেট করার পরামর্শ দেওয়া হয়।

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // create and customize title view
        self.title = NSLocalizedString(@"My Custom Title", @"");
        UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
        titleLabel.text = self.title;
        titleLabel.font = [UIFont boldSystemFontOfSize:16];
        titleLabel.backgroundColor = [UIColor clearColor];
        titleLabel.textColor = [UIColor whiteColor];
        [titleLabel sizeToFit];
        self.navigationItem.titleView = titleLabel;
        [titleLabel release];
    }
}

6

এটি বেশ পুরানো থ্রেড তবে আমি আইওএস 7 এবং ততোধিকের জন্য ন্যাভিগেশন বারের শিরোনামের রঙ, আকার এবং উল্লম্ব অবস্থান নির্ধারণের জন্য উত্তর প্রদানের কথা ভাবি

রঙ এবং আকারের জন্য

 NSDictionary *titleAttributes =@{
                                NSFontAttributeName :[UIFont fontWithName:@"Helvetica-Bold" size:14.0],
                                NSForegroundColorAttributeName : [UIColor whiteColor]
                                };

উল্লম্ব অবস্থানের জন্য

[[UINavigationBar appearance] setTitleVerticalPositionAdjustment:-10.0 forBarMetrics:UIBarMetricsDefault];

শিরোনাম সেট করুন এবং বৈশিষ্ট্য অভিধানটি বরাদ্দ করুন

[[self navigationItem] setTitle:@"CLUBHOUSE"];
self.navigationController.navigationBar.titleTextAttributes = titleAttributes;

5

এটি সুইফটে আমার পক্ষে কাজ করে:

navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.white]

খুব কাছাকাছি তবে জিনিসটি আপনার উপায়টি ইতিমধ্যে শিরোনামে থাকা সমস্ত সম্ভাব্য বৈশিষ্ট্যগুলিকে ওভাররাইট করবে। আমার ক্ষেত্রে এটি ফন্ট ছিল। আমি যে কোডটি দিয়ে শেষ করেছি তা হ'লnavigationController?.navigationBar.titleTextAttributes = { if let currentAttributes = navigationController?.navigationBar.titleTextAttributes { var newAttributes = currentAttributes newAttributes[NSForegroundColorAttributeName] = navigationTintColor return newAttributes } else { return [NSForegroundColorAttributeName: navigationTintColor]}}()
ম্যাটিক ওব্লাক

ভাল কাজ করে. self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName : UIColor.redColor};
ওবজ


4
self.navigationItem.title=@"Extras";
[self.navigationController.navigationBar setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"HelveticaNeue" size:21], NSFontAttributeName,[UIColor whiteColor],UITextAttributeTextColor,nil]];

3

শিরোনামের ফন্টের আকার নির্ধারণ করতে আমি নিম্নলিখিত শর্তাদি ব্যবহার করেছি .. কারও কাছে হয়ত সহায়ক

if ([currentTitle length]>24) msize = 10.0f;
    else if ([currentTitle length]>16) msize = 14.0f;
    else if ([currentTitle length]>12) msize = 18.0f;

3

অ্যালেক্স আরআর এর পোস্টে নতুন আইওএস 7 টি পাঠ্য বৈশিষ্ট্য এবং আধুনিক উদ্দেশ্য সি ব্যবহার করে কম শব্দ করার জন্য একটি আপডেট:

NSShadow *titleShadow = [[NSShadow alloc] init];
titleShadow.shadowColor = [UIColor blackColor];
titleShadow.shadowOffset = CGSizeMake(-1, 0);
NSDictionary *navbarTitleTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor],
                                            NSShadowAttributeName:titleShadow};

[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];

3

এর রঙ নির্ধারণ করার সঠিক উপায়টি আমি বিশ্বাস করি UINavigationBar:

NSDictionary *attributes=[NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor],UITextAttributeTextColor, nil];
self.titleTextAttributes = attributes;

উপরের কোডটি সাবক্লাসে লেখা রয়েছে UINavigationBar, স্পষ্টতই সাবক্লাসিং ছাড়াও কাজ করে।


সঠিক, তবে কেবল আইওএস 5। আইওএস 5 এর মুক্তির পরে এটি অনেক দীর্ঘ হয়েছে যে এটি একটি ভাল সমাধান। এবং যেহেতু আমরা আইওএস 5 বিশ্বে আছি, সুতরাং এখানে লক্ষ্য করা উচিত যে কেউ [UINavigationBar appearance]সেখানে শিরোনাম পাঠ্য বৈশিষ্ট্যগুলি ব্যবহার করতে এবং সেট করতে পারে (সাবক্লাসিংয়ের সাথে জড়িত কৌশলগুলি বিবেচনা করে UINavigationBar, একটি পছন্দসই সমাধান)।
ইভান ভুইকা

@stringCode। আপনি কি "সেলিব্রেটিউশন কন্ট্রোল.নাভিগেশনবার.টাইটেলটেক্সট অ্যাট্রিবিউটস = অ্যাট্রিবিউটস;" ব্যতীত উপরের কোডটি আরম্ভ করতে পারবেন?
গজেন্দ্র কে চৌহান

3

ওরিয়েন্টেশন সমর্থনের জন্য এটির মতো ব্যবহার করুন

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,40)];
[view setBackgroundColor:[UIColor clearColor]];
[view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight ];

UILabel *nameLabel = [[UILabel alloc] init];
[nameLabel setFrame:CGRectMake(0, 0, 320, 40)];
[nameLabel setBackgroundColor:[UIColor clearColor]];
[nameLabel setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin |UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin];
[nameLabel setTextColor:[UIColor whiteColor]];
[nameLabel setFont:[UIFont boldSystemFontOfSize:17]];
[nameLabel setText:titleString];
[nameLabel setTextAlignment:UITextAlignmentCenter];
[view addSubview:nameLabel];
[nameLabel release];
self.navigationItem.titleView = view;
[view release];

2

এটি সেই জিনিসগুলির মধ্যে একটি যা অনুপস্থিত রয়েছে। আপনার সেরা বেটটি হ'ল আপনার নিজস্ব কাস্টম নেভিগেশন বার তৈরি করা, একটি পাঠ্য বাক্স যুক্ত করা এবং সেইভাবে রঙটি ম্যানিপুলেট করা।


আমি আপনার ধারণার অনুসরণ করছি :) শিরোনাম দিয়ে খেলতে শুরু করতে আমার কোন পদ্ধতিটি ওভাররাইড করা উচিত? দুঃখিত, আমি সত্যিই একটি n00b :(
জুনিয়র রিচি

2

লেবেলের একই সমস্যার (অন্যদের মতো) মুখোমুখি হওয়ার পরে যখন আমরা নাবারে একটি বাটন sertোকানোর সময় চলবে (আমার ক্ষেত্রে আমার একটি স্পিনার রয়েছে যা আমি তারিখটি লোড করার সাথে সাথে একটি বোতাম দিয়ে প্রতিস্থাপন করি), উপরের সমাধানগুলি কার্যকর হয়নি আমার জন্য, তাই এখানে সর্বদা লেবেল একই জায়গায় কাজ করা এবং রেখেছিল:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
    // this will appear as the title in the navigation bar
    //CGRect frame = CGRectMake(0, 0, [self.title sizeWithFont:[UIFont boldSystemFontOfSize:20.0]].width, 44);
   CGRect frame = CGRectMake(0, 0, 180, 44);
    UILabel *label = [[[UILabel alloc] initWithFrame:frame] autorelease];



    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont boldSystemFontOfSize:20.0];
    label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
    label.textAlignment = UITextAlignmentCenter;
    label.textColor = [UIColor yellowColor];
    self.navigationItem.titleView = label;
    label.text = NSLocalizedString(@"Latest Questions", @"");
    [label sizeToFit];
}

return self;

1

আপনার [লেবেল আকার টোফিট] কল করা উচিত; লেবেলটি স্বয়ংক্রিয়ভাবে শিরোনাম দৃশ্যে পুনরায় স্থাপন করা হবে যখন অন্যান্য বোতামগুলি এনএভি বারটি দখল করে strange


1

এই পদ্ধতিটি অ্যাপ্লিগেট ফাইলে ব্যবহার করতে পারেন এবং প্রতিটি দর্শনে ব্যবহার করতে পারেন

+(UILabel *) navigationTitleLable:(NSString *)title
{
CGRect frame = CGRectMake(0, 0, 165, 44);
UILabel *label = [[[UILabel alloc] initWithFrame:frame] autorelease];
label.backgroundColor = [UIColor clearColor];
label.font = NAVIGATION_TITLE_LABLE_SIZE;
label.shadowColor = [UIColor whiteColor];
label.numberOfLines = 2;
label.lineBreakMode = UILineBreakModeTailTruncation;    
label.textAlignment = UITextAlignmentCenter;
[label setShadowOffset:CGSizeMake(0,1)]; 
label.textColor = [UIColor colorWithRed:51/255.0 green:51/255.0 blue:51/255.0 alpha:1.0];

//label.text = NSLocalizedString(title, @"");

return label;
}

1

শিরোনাম পাঠ্য বারের শিরোনাম পাঠ্যের জন্য বৈশিষ্ট্য প্রদর্শন করুন।

@ প্রপার্টি (ননোটমিক, অনুলিপি) এনএসডি অভিধান * শিরোনামপরিচালনা আলোচনা আলোচনা আপনি এনএসএসট্রিং ইউআইকিট সংযোজন রেফারেন্সে বর্ণিত টেক্সট অ্যাট্রিবিউট কী ব্যবহার করে শিরোনামের জন্য ফন্ট, পাঠ্য রঙ, পাঠ্য ছায়া রঙ এবং পাঠ্য ছায়া অফসেট নির্দিষ্ট করতে পারেন।

আইওএস 5.0 এবং তারপরে উপলভ্যতা উপলব্ধ। ইউআইএনএভিগেশনবারে ঘোষণা করা হয়েছে

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