একটি ইউআইবারবারটন আইটেমের ফন্ট পরিবর্তন করুন


139

ইউআইআরবার্টন আইটেম সহ ইউআইটিুলবার

আমি একটি আছে UIBarButtonItemআমার UIToolbarখেতাবধারী সম্পন্ন । এখন আমি বোল্ডের সাথে ফন্টটি ডিফল্ট থেকে "ট্রেবুচেট এমএস" এ পরিবর্তন করতে চাই । আমি এটা কিভাবে করবো?

উত্তর:


126

যেহেতু ইউআইবারবারটন আইটেমটি ইউআইবিআরটাইম থেকে উত্তরাধিকার সূত্রে প্রাপ্ত, আপনি চেষ্টা করতে পারেন

- (void)setTitleTextAttributes:(NSDictionary *)attributes
                  forState:(UIControlState)state

তবে এটি কেবল আইওএস 5 এর জন্য। আইওএস 3/4 এর জন্য আপনাকে একটি কাস্টম ভিউ ব্যবহার করতে হবে।


214

সুনির্দিষ্টভাবে বলতে গেলে, এটি নীচের মতো করা যেতে পারে

[buttonItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
    [UIFont fontWithName:@"Helvetica-Bold" size:26.0], NSFontAttributeName,
    [UIColor greenColor], NSForegroundColorAttributeName,
    nil] 
                          forState:UIControlStateNormal];

বা অবজেক্ট আক্ষরিক বাক্য গঠন সহ:

[buttonItem setTitleTextAttributes:@{
     NSFontAttributeName: [UIFont fontWithName:@"Helvetica-Bold" size:26.0],
     NSForegroundColorAttributeName: [UIColor greenColor]
} forState:UIControlStateNormal];

সুবিধার জন্য, এখানে সুইফ্ট বাস্তবায়ন:

buttonItem.setTitleTextAttributes([
        NSAttributedStringKey.font: UIFont(name: "Helvetica-Bold", size: 26.0)!,
        NSAttributedStringKey.foregroundColor: UIColor.green],
    for: .normal)

2
IOS7 এর জন্য বিকাশকালে NSFontAttributeName এর পরিবর্তে UITextAttributeFont ব্যবহার করা উচিত, এবং NSForegroundColorAttributeName UITextAttributeText कलরের পরিবর্তে হওয়া উচিত।
রাজ

126

অ্যাপ্লিকেশন জুড়ে UIAppearanceতাদের UIBarButtonItemএর ফন্টগুলি স্টাইল করতে আগ্রহীদের জন্য , কোডের এই লাইনটি ব্যবহার করে এটি সম্পন্ন করা যেতে পারে:

উদ্দেশ্য গ:

NSDictionary *barButtonAppearanceDict = @{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Light" size:12.0], NSForegroundColorAttributeName: [UIColor whiteColor]};
[[UIBarButtonItem appearance] setTitleTextAttributes:barButtonAppearanceDict forState:UIControlStateNormal];

সুইফট ২.৩:

UIBarButtonItem.appearance().setTitleTextAttributes(
[
    NSFontAttributeName : UIFont(name: "HelveticaNeue-Light", size: 12)!,
    NSForegroundColorAttributeName : UIColor.white
],
for: .normal)

সুইফট 3

UIBarButtonItem.appearance().setTitleTextAttributes(
[
    NSFontAttributeName : UIFont(name: "HelveticaNeue-Light", size: 12)!,
    NSForegroundColorAttributeName : UIColor.white,
], for: .normal)

সুইফট 4

UIBarButtonItem.appearance().setTitleTextAttributes(
[
    NSAttributedStringKey.font : UIFont(name: "HelveticaNeue-Light", size: 12)!,
    NSAttributedStringKey.foregroundColor : UIColor.white,
], for: .normal)

অথবা একটি একক ইউআইবারবারটন আইটেমের জন্য (সমস্ত অ্যাপ্লিকেশন প্রশস্ত নয়) যদি আপনার বিশেষত একটি বোতামের জন্য কাস্টম ফন্ট থাকে:

সুইফট 3

let barButtonItem = UIBarButton()
barButtonItem.setTitleTextAttributes([
    NSFontAttributeName : UIFont(name: "FontAwesome", size: 26)!,
    NSForegroundColorAttributeName : UIColor.white,
], for: .normal)
barButtonItem.title = "\u{f02a}"

সুইফট 4

let barButtonItem = UIBarButton()
barButtonItem.setTitleTextAttributes([
    NSAttributedStringKey.font : UIFont(name: "FontAwesome", size: 26)!,
    NSAttributedStringKey.foregroundColor : UIColor.white,
], for: .normal)
barButtonItem.title = "\u{f02a}"

অবশ্যই, আপনি ফন্ট ও আকার আপনার পছন্দসই পরিবর্তন করতে পারেন। আমি এই কোডটি বিভাগে AppDelegate.mফাইলটিতে রাখতে পছন্দ করি didFinishLaunchingWithOptions

উপলভ্য বৈশিষ্ট্য (কেবলমাত্র এগুলিতে যুক্ত করুন NSDictionary):

  • NSFontAttributeName: একটি দিয়ে ফন্ট পরিবর্তন করুন UIFont
  • NSForegroundColorAttributeName: একটি সঙ্গে রঙ পরিবর্তন করুন UIColor
  • NSShadow: একটি ড্রপ ছায়া যুক্ত করুন ( NSShadowশ্রেণি রেফারেন্স দেখুন)

(আইওএস 7+ এর জন্য আপডেট করা হয়েছে)


3
ইউআইটিএক্সটেক্সট্রিবিউট .. কীগুলি আইওএস 7-এর হিসাবে অবচিত করা হয়েছে। পরিবর্তে এনএসফন্টএট্রিবিউট ... এবং এনএসফোরগ্রাউন্ড ... ইত্যাদি ব্যবহার করুন।
ইমমানুয়েল

2
আমি iOS7 এ প্রবর্তিত অবচয়গুলির জন্য আপডেট করেছি। মাথা উঁচু করার জন্য ধন্যবাদ, এমমানুয়েলএ!
রাগ

1
ফ্যান্টাস্টিক! আমার অ্যাপ্লিকেশনটি এখন দেখতে সুন্দর দেখাচ্ছে (ভাল, আমার নিজের উপায়ে এটি হ'ল !!: পি) আপনাকে ধন্যবাদ
সেপ্টেম্বর

20

সুইফটে আপনি নিম্নলিখিত হিসাবে এটি করবেন:

backButtonItem.setTitleTextAttributes([
        NSFontAttributeName : UIFont(name: "Helvetica-Bold", size: 26)!,
        NSForegroundColorAttributeName : UIColor.blackColor()],
    forState: UIControlState.Normal)

1
ফন্টের পরে উদ্দীপনা চিহ্ন (!) ভুলবেন না ত্রুটি বার্তা: "'_' 'স্ট্রিং'-এ রূপান্তরযোগ্য নয়" সত্যিই সহায়ক নয়।
সিরিওন

17

এগুলি উপরের দুর্দান্ত উত্তর। কেবল iOS7 এর জন্য আপডেট হচ্ছে:

NSDictionary *barButtonAppearanceDict = @{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Thin" size:18.0] , NSForegroundColorAttributeName: [UIColor whiteColor]};
    [[UIBarButtonItem appearance] setTitleTextAttributes:barButtonAppearanceDict forState:UIControlStateNormal];

16

Swift3

  buttonName.setAttributedTitle([
        NSFontAttributeName : UIFont.systemFontOfSize(18.0),
        NSForegroundColorAttributeName : UIColor.red,NSBackgroundColorAttributeName:UIColor.black],
                                     forState: UIControlState.Normal)

দ্রুতগতি

   barbutton.setTitleTextAttributes([
        NSFontAttributeName : UIFont.systemFontOfSize(18.0),
        NSForegroundColorAttributeName : UIColor.redColor(),NSBackgroundColorAttributeName:UIColor.blackColor()],
        forState: UIControlState.Normal)

উদ্দেশ্য গ

     [ barbutton setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
        [UIFont fontWithName:@"Helvetica-Bold" size:20.0], NSFontAttributeName,
        [UIColor redColor], NSForegroundColorAttributeName,[UIColor blackColor],NSBackgroundColorAttributeName,
        nil]
        forState:UIControlStateNormal];

8

কিছু করার জন্য এটি করার জন্য UIBarButtonItemsতবে সমস্ত নয় আমি নিম্নলিখিত পদ্ধতির সুপারিশ করি।

  1. একটি UIBarButtonItemসাবক্লাস তৈরি করুন । এটিতে কিছু যুক্ত করবেন না - আপনি এটি কেবল স্টোরিবোর্ডে এবং এটির উপস্থিতির প্রক্সি হিসাবে কাস্টম শ্রেণি হিসাবে ব্যবহার করবেন ...
  2. আপনার স্টোরিবোর্ডে, UIBarButtonItemsআপনার সাবক্লাসে কাঙ্ক্ষিত সকলের জন্য কাস্টম ক্লাস পরিবর্তন করুন
  3. আপনার অ্যাপডেলিজেটে আপনার UIBarButtonItemসাবক্লাসটি আমদানি করুন এবং নীচের লাইনটি এতে যুক্ত করুনapplication:didFinishLaunchingWithOptions:

আমার ক্ষেত্রে আমি UIBarButtonItemপাঠ্যটি সাহসী করার একমাত্র উদ্দেশ্যে সাবক্লাস করেছি :

[[BoldBarButtonItem appearance] setTitleTextAttributes:
  [NSDictionary dictionaryWithObjectsAndKeys: 
    [UIFont boldSystemFontOfSize:18.0], NSFontAttributeName,nil] 
                                              forState:UIControlStateNormal];

8

ইন সুইফট 4 , আপনি ফন্ট এবং রং পরিবর্তন করতে পারেন UIBarButtonItemনিম্নলিখিত কোড যোগ করে।

addTodoBarButton.setTitleTextAttributes(
        [
        NSAttributedStringKey.font: UIFont(name: "HelveticaNeue-Bold", size: 17)!,
        NSAttributedStringKey.foregroundColor: UIColor.black
        ], for: .normal)

3

এটি সঠিক উপায়ে: আপনার বারবটন আইটেমটি ঘোষণা করুন (এক্ষেত্রে ডানবার্ট বাটন আইটেম) এবং সেটটাইটেল টেক্সটঅ্যাট্রিবিউটস সেট করুন।

navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Go!", style: .plain, target: self, action: #selector(yourFuncDestination))

আপনি শিরোনাম বৈশিষ্ট্য যুক্ত করতে পারেন পরে

navigationItem.rightBarButtonItem?.setTitleTextAttributes([.font : UIFont.systemFont(ofSize: 18, weight: .bold), .foregroundColor : UIColor.white], for: .normal)

আপনি আকার, ওজন (। বোল্ড,। ভারী, .regular ইত্যাদি) এবং আপনি যে রঙটি পছন্দ করেন তা পরিবর্তন করতে পারেন ... এই সহায়তার আশা করি :)


3

সুইফ্ট 5 বাস্তবায়ন

rightButtonItem.setTitleTextAttributes([
            NSAttributedString.Key.font: UIFont(name: "Helvetica-Bold", size: 26.0)!,
            NSAttributedString.Key.foregroundColor: UIColor.green],
        for: .normal)

2

দ্রুত 3

barButtonName.setTitleTextAttributes( [NSFontAttributeName : UIFont.systemFont(ofSize: 18.0),NSForegroundColorAttributeName : UIColor.white], for: .normal) 

1

পুরো অ্যাপ্লিকেশন:

if let font = UIFont(name: "AvenirNext-DemiBold", size: 15) {
        UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: font,NSForegroundColorAttributeName:TOOLBAR_TITLE_COLOR], forState: UIControlState.Normal)

    }

0

UIBarButtonফন্ট পরিবর্তন সম্পর্কিত সম্পত্তি নেই। তবে আপনি কাস্টম ফন্টের সাহায্যে একটি বোতাম তৈরি করতে পারেন এবং তারপরে ইউআইবারবার্টনে যুক্ত করতে পারেন। এটি আপনার সমস্যার সমাধান হতে পারে


0

ধরে নিই যে আপনি আইওএস 4 এবং এর আগে সমর্থন করতে চান, আপনার সেরা বেটটি হল initWithCustomView:পদ্ধতিটি ব্যবহার করে একটি বার বোতাম তৈরি করা এবং আপনার নিজের ভিউ সরবরাহ করা যা কোনও ইউআইবাটন এর মতো কিছু হতে পারে যেখানে আপনি সহজেই ফন্টটি কাস্টমাইজ করতে পারবেন।

আপনি যদি প্রোগ্রামটিমেটিক পরিবর্তে ড্র্যাগ-অ্যান্ড-ড্রপ দিয়ে বোতামটি তৈরি করতে চান তবে আপনি একটি ইউআইবাটন একটি সরঞ্জামদণ্ড বা ইন্টারফেস বিল্ডারের নেভিগেশন বারে টেনে আনতে পারেন।

দুর্ভাগ্যক্রমে এর অর্থ বোতামের পটভূমি চিত্র নিজেই তৈরি করা। আইওএস 5 এর আগে কোনও স্ট্যান্ডার্ড ইউআইবারবারটন আইটেমের ফন্টটি কাস্টমাইজ করার কোনও উপায় নেই।


0

আপনি UIViewপ্রোগ্রাম হিসাবে একটি কাস্টম তৈরি করতে পারেন :

UIView *buttonItemView = [[UIView alloc] initWithFrame:buttonFrame];

তারপরে আপনার কাস্টম ভিউতে চিত্রগুলি, লেবেলগুলি বা আপনার পছন্দসই কিছু যুক্ত করুন:

[buttonItemView addSubview:customImage];

[buttonItemView addSubview:customLabel];

...

এখন এটি আপনার মধ্যে রাখুন UIBarButtomItem

UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:buttonItemView];

এবং অবশেষে আপনার নেভিগেশন বারে বারবুটন আইটেম যুক্ত করুন।


0

সমাপ্তির জন্য আমি এই পদ্ধতিটি যুক্ত করতে চাই, যা 2019 সালে এখনও অবজেক্টিভ-সি তে ব্যবহৃত :)

_titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
_titleLabel.text = _titleBarButtonItem.title;
_titleLabel.textColor = UIColor.whiteColor;
_titleLabel.font = [UtilityMethods appFontProDisplayBold:26.0];

[_titleLabel sizeToFit];
UIBarButtonItem *titleLabelItem = [[UIBarButtonItem alloc] initWithCustomView:_titleLabel];
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.