আমি একটি আছে UIBarButtonItem
আমার UIToolbar
খেতাবধারী সম্পন্ন । এখন আমি বোল্ডের সাথে ফন্টটি ডিফল্ট থেকে "ট্রেবুচেট এমএস" এ পরিবর্তন করতে চাই । আমি এটা কিভাবে করবো?
আমি একটি আছে UIBarButtonItem
আমার UIToolbar
খেতাবধারী সম্পন্ন । এখন আমি বোল্ডের সাথে ফন্টটি ডিফল্ট থেকে "ট্রেবুচেট এমএস" এ পরিবর্তন করতে চাই । আমি এটা কিভাবে করবো?
উত্তর:
যেহেতু ইউআইবারবারটন আইটেমটি ইউআইবিআরটাইম থেকে উত্তরাধিকার সূত্রে প্রাপ্ত, আপনি চেষ্টা করতে পারেন
- (void)setTitleTextAttributes:(NSDictionary *)attributes
forState:(UIControlState)state
তবে এটি কেবল আইওএস 5 এর জন্য। আইওএস 3/4 এর জন্য আপনাকে একটি কাস্টম ভিউ ব্যবহার করতে হবে।
সুনির্দিষ্টভাবে বলতে গেলে, এটি নীচের মতো করা যেতে পারে
[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)
অ্যাপ্লিকেশন জুড়ে 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+ এর জন্য আপডেট করা হয়েছে)
সুইফটে আপনি নিম্নলিখিত হিসাবে এটি করবেন:
backButtonItem.setTitleTextAttributes([
NSFontAttributeName : UIFont(name: "Helvetica-Bold", size: 26)!,
NSForegroundColorAttributeName : UIColor.blackColor()],
forState: UIControlState.Normal)
এগুলি উপরের দুর্দান্ত উত্তর। কেবল iOS7 এর জন্য আপডেট হচ্ছে:
NSDictionary *barButtonAppearanceDict = @{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Thin" size:18.0] , NSForegroundColorAttributeName: [UIColor whiteColor]};
[[UIBarButtonItem appearance] setTitleTextAttributes:barButtonAppearanceDict forState:UIControlStateNormal];
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];
কিছু করার জন্য এটি করার জন্য UIBarButtonItems
তবে সমস্ত নয় আমি নিম্নলিখিত পদ্ধতির সুপারিশ করি।
UIBarButtonItem
সাবক্লাস তৈরি করুন । এটিতে কিছু যুক্ত করবেন না - আপনি এটি কেবল স্টোরিবোর্ডে এবং এটির উপস্থিতির প্রক্সি হিসাবে কাস্টম শ্রেণি হিসাবে ব্যবহার করবেন ...UIBarButtonItems
আপনার সাবক্লাসে কাঙ্ক্ষিত সকলের জন্য কাস্টম ক্লাস পরিবর্তন করুনUIBarButtonItem
সাবক্লাসটি আমদানি করুন এবং নীচের লাইনটি এতে যুক্ত করুনapplication:didFinishLaunchingWithOptions:
আমার ক্ষেত্রে আমি UIBarButtonItem
পাঠ্যটি সাহসী করার একমাত্র উদ্দেশ্যে সাবক্লাস করেছি :
[[BoldBarButtonItem appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIFont boldSystemFontOfSize:18.0], NSFontAttributeName,nil]
forState:UIControlStateNormal];
ইন সুইফট 4 , আপনি ফন্ট এবং রং পরিবর্তন করতে পারেন UIBarButtonItem
নিম্নলিখিত কোড যোগ করে।
addTodoBarButton.setTitleTextAttributes(
[
NSAttributedStringKey.font: UIFont(name: "HelveticaNeue-Bold", size: 17)!,
NSAttributedStringKey.foregroundColor: UIColor.black
], for: .normal)
এটি সঠিক উপায়ে: আপনার বারবটন আইটেমটি ঘোষণা করুন (এক্ষেত্রে ডানবার্ট বাটন আইটেম) এবং সেটটাইটেল টেক্সটঅ্যাট্রিবিউটস সেট করুন।
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 ইত্যাদি) এবং আপনি যে রঙটি পছন্দ করেন তা পরিবর্তন করতে পারেন ... এই সহায়তার আশা করি :)
সুইফ্ট 5 বাস্তবায়ন
rightButtonItem.setTitleTextAttributes([
NSAttributedString.Key.font: UIFont(name: "Helvetica-Bold", size: 26.0)!,
NSAttributedString.Key.foregroundColor: UIColor.green],
for: .normal)
পুরো অ্যাপ্লিকেশন:
if let font = UIFont(name: "AvenirNext-DemiBold", size: 15) {
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: font,NSForegroundColorAttributeName:TOOLBAR_TITLE_COLOR], forState: UIControlState.Normal)
}
ধরে নিই যে আপনি আইওএস 4 এবং এর আগে সমর্থন করতে চান, আপনার সেরা বেটটি হল initWithCustomView:
পদ্ধতিটি ব্যবহার করে একটি বার বোতাম তৈরি করা এবং আপনার নিজের ভিউ সরবরাহ করা যা কোনও ইউআইবাটন এর মতো কিছু হতে পারে যেখানে আপনি সহজেই ফন্টটি কাস্টমাইজ করতে পারবেন।
আপনি যদি প্রোগ্রামটিমেটিক পরিবর্তে ড্র্যাগ-অ্যান্ড-ড্রপ দিয়ে বোতামটি তৈরি করতে চান তবে আপনি একটি ইউআইবাটন একটি সরঞ্জামদণ্ড বা ইন্টারফেস বিল্ডারের নেভিগেশন বারে টেনে আনতে পারেন।
দুর্ভাগ্যক্রমে এর অর্থ বোতামের পটভূমি চিত্র নিজেই তৈরি করা। আইওএস 5 এর আগে কোনও স্ট্যান্ডার্ড ইউআইবারবারটন আইটেমের ফন্টটি কাস্টমাইজ করার কোনও উপায় নেই।
আপনি UIView
প্রোগ্রাম হিসাবে একটি কাস্টম তৈরি করতে পারেন :
UIView *buttonItemView = [[UIView alloc] initWithFrame:buttonFrame];
তারপরে আপনার কাস্টম ভিউতে চিত্রগুলি, লেবেলগুলি বা আপনার পছন্দসই কিছু যুক্ত করুন:
[buttonItemView addSubview:customImage];
[buttonItemView addSubview:customLabel];
...
এখন এটি আপনার মধ্যে রাখুন UIBarButtomItem
।
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:buttonItemView];
এবং অবশেষে আপনার নেভিগেশন বারে বারবুটন আইটেম যুক্ত করুন।
সমাপ্তির জন্য আমি এই পদ্ধতিটি যুক্ত করতে চাই, যা 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];