मैं एक UILabel का फ़ॉन्ट आकार और फ़ॉन्ट नाम कैसे प्राप्त कर सकता हूं?


105

मेरे पास एक UILabel है जिसे मैंने इंटरफ़ेस बिल्डर के साथ फ़ॉन्ट आकार और फ़ॉन्ट नाम सेट किया है। अब मुझे अपने ViewController में दोनों के मूल्यों को पढ़ना होगा।

मैं यह कैसे कर सकता हूँ?


इस पद्धति को iOS7 में पदावनत किया गया है, इस लेख पर एक नज़र डालें stackoverflow.com/questions/19128797/…
मारिया

जवाबों:


254

अपने दृश्य नियंत्रक-h फ़ाइल में कोई गुण जोड़ें:

@property (nonatomic, retain) IBOutlet UILabel *label;

इंटरफ़ेस बिल्डर में "फ़ाइल के मालिक" आउटलेट के तहत इस IBOutlet पर लेबल को लिंक करें। यदि एआरसी का उपयोग नहीं कर रहे हैं, तो सुनिश्चित करें कि आप इसे -dealloc में जारी करते हैं

- (void)dealloc
{
    [self.label release];
    [super dealloc];
}

फिर फ़ॉन्ट नाम और आकार प्राप्त करने के लिए आपको बस जरूरत है

NSString *fontName = self.label.font.fontName;
CGFloat fontSize = self.label.font.pointSize;

3
काम नहीं करता। मैं इसमें पाठ लिख सकता हूं, लेकिन fontName और pointSize शून्य है।
टिम

क्या आपका मतलब है कि आप प्रोग्राम को लेबल के पाठ को बदल सकते हैं, लेकिन आप fontName और pointSize का उपयोग नहीं कर सकते हैं? मैंने उपरोक्त उत्तर को केवल लेबल के बजाय, स्वयं लेबल शामिल करने के लिए संपादित किया, क्योंकि मैंने लेबल के लिए एक आवृत्ति चर बनाने का उल्लेख नहीं किया था।
नेड

इसके अलावा, सुनिश्चित करें कि आपने फ़ाइल के मालिक (व्यू कंट्रोलर) में किए गए IBOutlet के साथ इंटरफ़ेस बिल्डर में लेबल को झुका दिया है।
नेड

2
आह, मैं फ़ाइल के स्वामी के साथ आईबी में कनेक्शन भूल गया।
टिम


15

यूआईपोंट आकार की संपत्ति में उपयोग किए जाने वाले पॉइंट साइज का पॉइंट पॉइंट मान नहीं है। यह कहें कि अगर आप सेट इंटरफ़ेस बिल्डर फ़ॉन्ट आकार 14 पर जाते हैं और उस बिंदु का एक प्रिंट करते हैं, तो आपको केवल 11 मिलेंगे।


अब काम करने लगता है। अगर मैं इंटरफ़ेस बिल्डर / स्टोरीबोर्ड संपादक में एक लेबल का फ़ॉन्ट आकार 17 पर सेट करता हूं ... 17 myLabel.font.pointSizeदेता है।
डेरेक सोइक

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