दो अलग-अलग फ़ॉन्ट आकारों के साथ NSAttributedString का उदाहरण?


80

NSAttributedString मेरे लिए वास्तव में अभेद्य है।

मैं UILabelविभिन्न आकारों का पाठ सेट करना चाहता हूं , और मैं इकट्ठा होने NSAttributedStringका रास्ता तय करता हूं, लेकिन मैं इस पर प्रलेखन के साथ कहीं भी नहीं जा सकता।

मुझे अच्छा लगेगा अगर कोई ठोस उदाहरण के साथ मेरी मदद कर सके।

उदाहरण के लिए, मान लें कि मुझे जो पाठ चाहिए वह था:

(in small letters:) "Presenting The Great..."
(in huge letters:) "HULK HOGAN!"

क्या कोई मुझे दिखा सकता है कि मुझे यह कैसे करना है? या यहां तक ​​कि, एक संदर्भ जो सीधा और सरल है, जहां मैं अपने लिए सीख सकता हूं? मैंने शपथ ली है कि मैंने इसे प्रलेखन के माध्यम से समझने की कोशिश की है, और यहां तक ​​कि स्टैक ओवरफ्लो पर अन्य उदाहरणों के माध्यम से, और मैं इसे प्राप्त नहीं कर रहा हूं।

जवाबों:


163

आप ऐसा कुछ करेंगे ...

NSMutableAttributedString *hogan = [[NSMutableAttributedString alloc] initWithString:@"Presenting the great... Hulk Hogan!"];
[hogan addAttribute:NSFontAttributeName
              value:[UIFont systemFontOfSize:20.0]
              range:NSMakeRange(24, 11)];

यह 20-बिंदु पाठ में अंतिम दो शब्द सेट करेगा; बाकी स्ट्रिंग डिफ़ॉल्ट मान (जो मुझे लगता है कि 12 अंक है) का उपयोग करेगा। पाठ आकार सेट करने के बारे में भ्रमित करने वाली बात यह हो सकती है कि आपको टाइपफेस और आकार एक ही समय में सेट करना होगा - प्रत्येक UIFontऑब्जेक्ट उन दोनों गुणों को सम्मिलित करता है।


SWIFT श्रेणियों के लिए इस उत्तर को देखें: stackoverflow.com/a/27041376/1736679
Efren

20

स्विफ्ट 3 समाधान

इसके अलावा, आप appendObjC या स्विफ्ट में सूचकांकों को निर्दिष्ट करने के बजाय फ़ंक्शन का उपयोग कर सकते हैं :

let attrString = NSMutableAttributedString(string: "Presenting The Great...",
                                           attributes: [ NSFontAttributeName: UIFont.systemFont(ofSize: 20) ])

attrString.append(NSMutableAttributedString(string: "HULK HOGAN!",
                                            attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 40) ]))

13

स्विफ्ट 4 समाधान:

let attrString = NSMutableAttributedString(string: "Presenting The Great...",
                                       attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 18)]);

attrString.append(NSMutableAttributedString(string: "HULK HOGAN!",
                                        attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 36)]));

-1

यदि आप इसे आसान तरीके से करना चाहते हैं, तो OHAttributedLabel नामक एक git repo है जो मैं उपयोग करता हूं जो NSAttributedString पर एक श्रेणी प्रदान करता है। यह आप की तरह बातें करते हैं:

NSMutableAttributedString *mystring = [[NSMutableAttributedString alloc] initWithString:@"My String"];
[mystring setTextColor:[UIColor colorWithRGB:78 green:111 blue:32 alpha:1]];
mystring.font = [UIFont systemFontOfSize:14];

यदि आप तीसरे पक्ष के लिब का उपयोग नहीं करना चाहते हैं, तो इस लिंक को एक सभ्य ट्यूटोरियल के लिए देखें कि कैसे शुरू किए गए तार के साथ शुरू किया जाए।

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