मैं UIBarButtonItem
अपने UIToolbar
शीर्षक Done में a । अब मैं डिफ़ॉल्ट को "ट्रेबुशेट एमएस" पर बोल्ड के साथ फ़ॉन्ट बदलना चाहता हूं । मैं उसे कैसे कर सकता हूँ?
मैं UIBarButtonItem
अपने UIToolbar
शीर्षक Done में a । अब मैं डिफ़ॉल्ट को "ट्रेबुशेट एमएस" पर बोल्ड के साथ फ़ॉन्ट बदलना चाहता हूं । मैं उसे कैसे कर सकता हूँ?
जवाबों:
क्योंकि UIBarButtonItem UIBarItem से विरासत में मिला है, आप कोशिश कर सकते हैं
- (void)setTitleTextAttributes:(NSDictionary *)attributes
forState:(UIControlState)state
लेकिन यह केवल iOS5 के लिए है। IOS 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];
स्विफ्ट 2.3:
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)
या एक एकल UIBarButtonItem (सभी ऐप के लिए विस्तृत नहीं) के लिए, यदि आपके पास विशेष रूप से एक बटन के लिए एक कस्टम फ़ॉन्ट है:
स्विफ्ट 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
)(IOS7 + के लिए अपडेट किया गया)
स्विफ्ट में आप इसका अनुसरण इस प्रकार करेंगे:
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)
यह सही तरीका है: अपने barButtonItem (इस मामले में rightBarButtonItem) को घोषित करें और इसे setTitleTextAttributes जोड़ें।
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)
आप आकार, वजन (.bold, .heavy, अनियमित आदि) और रंग को पसंद करते हैं जिसे आप पसंद कर सकते हैं…
पूरे ऐप में:
if let font = UIFont(name: "AvenirNext-DemiBold", size: 15) {
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: font,NSForegroundColorAttributeName:TOOLBAR_TITLE_COLOR], forState: UIControlState.Normal)
}
मान लें कि आप iOS4 और पहले का समर्थन करना चाहते हैं, तो आपका सबसे अच्छा initWithCustomView:
तरीका यह है कि आप विधि का उपयोग करके एक बार बटन बनाएं और अपने स्वयं के दृश्य की आपूर्ति करें जो कि UIButton जैसा कुछ हो सकता है जहां आप आसानी से फ़ॉन्ट को अनुकूलित कर सकते हैं।
यदि आप प्रोग्रामेटिक रूप से ड्रैग-एंड-ड्रॉप के साथ बटन बनाना चाहते हैं, तो आप इंटरफ़ेस बिल्डर में एक टूलबार या नेविगेशन बार पर एक यूआईब्यूटॉन को भी खींच सकते हैं।
दुर्भाग्य से इसका मतलब है बटन बैकग्राउंड इमेज खुद बनाना। IOS5 से पहले एक मानक UIBarButtonItem के फ़ॉन्ट को अनुकूलित करने का कोई तरीका नहीं है।
आप एक UIView
प्रोग्राम प्रोग्राम बना सकते हैं :
UIView *buttonItemView = [[UIView alloc] initWithFrame:buttonFrame];
फिर अपने कस्टम दृश्य में चित्र, लेबल या जो कुछ भी आप चाहें, जोड़ें:
[buttonItemView addSubview:customImage];
[buttonItemView addSubview:customLabel];
...
अब इसे अपने अंदर डालें UIBarButtomItem
।
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:buttonItemView];
और अंत में barButtonItem को आप नेविगेशन बार में जोड़ें।
पूरा करने के लिए मैं इस विधि को जोड़ना चाहूंगा, अभी भी 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];