स्विफ्ट के साथ UIButton का फ़ॉन्ट कैसे बदलें


207

मैं स्विफ्ट का उपयोग करके एक यूब्यूटॉन के फ़ॉन्ट को बदलने की कोशिश कर रहा हूं ...

myButton.font = UIFont(name: "...", 10)

हालांकि .fontपदावनत कर दिया गया है और मुझे यकीन नहीं है कि अन्यथा फ़ॉन्ट को कैसे बदला जाए।

कोई सुझाव?

जवाबों:


421

titleLabelइसके बजाय उपयोग करें । fontसंपत्ति आईओएस 3.0 में मान्य नहीं है। यह Objective-C में भी काम नहीं करता है। titleLabelपर शीर्षक दिखाने के लिए लेबल का उपयोग किया जाता है UIButton

myButton.titleLabel?.font =  UIFont(name: YourfontName, size: 20)

हालांकि, शीर्षक पाठ सेट करते समय आपको केवल उपयोग करना चाहिए setTitle:forControlState:titleLabelसीधे शीर्षक के लिए कोई पाठ सेट करने के लिए उपयोग न करें ।


1
क्या आप लोग जानते हैं कि मुझे 'अनफ्रेंड' क्यों होना पड़ा? मेरा लेबल ?? इस तरह ... myButton.titleLabel! .font = ...
DanMoore

बीकॉज़ titleLabelवैकल्पिक संपत्ति है। पहले बीटा में यह नहीं था।
कोडस्टर

4
इस पद्धति ने मुझे अपना फ़ॉन्ट नाम / शैली बदलने की अनुमति दी, लेकिन आकार की संपत्ति को बदलने से कोई फर्क नहीं पड़ा।
डेव जी

7
आपको लेबल को हटाने के लिए बाध्य करने की आवश्यकता नहीं है। myButton.titleLabel?.font = ...काम करेंगे क्योंकि अगर टाइटलबेल शून्य है तो यह सिर्फ एक नो-ऑप
टेराडिल

1
कस्टम यूथबटन उपवर्ग के लिए यह विधि काम क्यों नहीं करती है?
मुनीब

69

के लिए स्विफ्ट 3.0 :

button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)

जहां "boldSystemFont" और "16" को आपके कस्टम फ़ॉन्ट और आकार से बदला जा सकता है।


44

डॉट-नोटेशन कमाल (तेजी से 4.2) is है

btn.titleLabel?.font = .systemFont(ofSize: 12)

@ ओमशाम यूआईफॉन्ट का अनुमान है, यह उत्तर दूसरों की तुलना में समान है लेकिन सिर्फ यूआईएफओएनटी के बिना (लेकिन यह कारण कंपाइलर द्वारा अनुमान लगाया गया है, लेकिन यह एक ही है) पीडी: मैं हमेशा इस तरह से लिखने की कोशिश करता हूं, लेकिन सिर्फ आपको बताने के लिए पता है कि एक ही है
पाब्लो सांचेज गोमेज़

1
@ उम्मसम: "डॉट-नोटेशन" अनुमान के समान है। और हाँ इसे अपनाना एक अच्छी आदत है। और यह अन्य उत्तरों की तुलना में दूसरों के समान ही नहीं है। IMO
eonist

9

आपको इसे सेट करने के लिए टाइटललैब को अनप्रेप करने की आवश्यकता नहीं है।

myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)

चूंकि आप यहां टाइटललैब का उपयोग नहीं कर रहे हैं, आप इसे वैकल्पिक रूप से उपयोग कर सकते हैं और यदि यह शून्य है तो यह सिर्फ एक नो-ऑप होगा।

मैं यह भी जोड़ूंगा कि अन्य लोग कह रहे हैं कि, फ़ॉन्ट संपत्ति को हटा दिया गया है, और setTitle:forControlState:शीर्षक पाठ सेट करते समय उपयोग करना सुनिश्चित करें।


7

से प्रलेखन :

फ़ॉन्ट बटन पर पाठ प्रदर्शित करने के लिए इस्तेमाल किया। ( IOS 3.0 में पदावनत । इसके बजाय fontसंपत्ति का उपयोग करें titleLabel।)


5

यदि आपको फ़ॉन्ट आकार समस्याएँ हो रही हैं (आपका फ़ॉन्ट आकार परिवर्तन का जवाब नहीं दे रहा है) ...

@ कोडर का सही कोड है:

myButton.titleLabel!.font =  UIFont(name: YourfontName, size: 20)

हालाँकि, मेरा फ़ॉन्ट आकार नहीं बदल रहा था। यह पता चला है कि मैं एक ऐसे फ़ॉन्ट के लिए पूछ रहा हूं जो मौजूद नहीं था ("हेलवेटिकाएएनयू-रेगुलर")। यह एक दुर्घटना का कारण नहीं बन रहा था, लेकिन ऐसा लग रहा था कि इसकी वजह से केवल उस फॉन्ट स्टेटमेंट को नजरअंदाज किया जा रहा था। एक बार मैंने फ़ॉन्ट को किसी ऐसी चीज़ में बदल दिया जो मौजूद है, "आकार: x" में परिवर्तन ने रेंडर किया।


5

हम नीचे दिए गए विभिन्न प्रकार के सिस्टम फोंट का उपयोग कर सकते हैं

myButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 17)
myButton.titleLabel?.font = UIFont.italicSystemFont(ofSize:UIFont.smallSystemFontSize)
myButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: UIFont.buttonFontSize)

और नीचे की तरह अपने कस्टम फ़ॉन्ट

    myButton.titleLabel?.font = UIFont(name: "Helvetica", size:12)

4

आपको titleLabelसंपत्ति के माध्यम से जाना चाहिए ।

button.titleLabel.font

fontसंपत्ति iOS 3.0 के बाद से मान्य नहीं है।


4

यहाँ एक नज़र रखना ।

आपको इसके बजाय बटन के शीर्षक के फ़ॉन्ट को सेट करना चाहिए।

myButton.titleLabel!.font = UIFont(name: "...", 10)

4

यह स्विफ्ट 3.0 में काम करता है:

btn.titleLabel?.font = UIFont(name:"Times New Roman", size: 20) 

4

यदि आप UIButton के लिए AttributedString सेट कर रहे हैं तो आप नीचे दी गई बात कर सकते हैं।

let attributedText = NSAttributedString(string: "Hello", attributes: [NSAttributedStringKey.font: UIFont(name: "Calibri", size: 19)])
okayButton.setAttributedTitle(attributedText, for: .normal)

4

यदि आपको केवल आकार बदलने की जरूरत है ( स्विफ्ट 4.0 ):

button.titleLabel?.font = button.titleLabel?.font.withSize(12)

2

उदाहरण: button.titleLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)

  • यदि आप अपने परिवार से डिफॉल फॉन्ट का उपयोग करना चाहते हैं, तो उदाहरण के लिए उपयोग करें: "हेल्वेटिकाएन्यू"
  • यदि आप पारिवारिक फ़ॉन्ट निर्दिष्ट करना चाहते हैं, तो उदाहरण के लिए उपयोग करें: "हेल्वेटिकाएन्यू-बोल्ड"

1

इस तरह से अब काम नहीं करता है:

 btn.titleLabel?.font = UIFont(name: "Helvetica", size:12)

यह काम:

 btn.titleLabel?.font = UIFont.init(name: "Helvetica", size:12)

0

मेरे लिए यह काम, धन्यवाद। मैं परिवर्तन पाठ आकार केवल फ़ॉन्ट नाम नहीं बदलना चाहता हूँ।

var fontSizeButtonBig:Int = 30

btnMenu9.titleLabel? .font = .systemFont (का आकार: CGFloat (fontSizeButtonBig))

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.