दिलचस्प पोस्ट
कैसे UILabel ऊँचाई गतिशील गणना करने के लिए? एक std :: vector के इटरेटर के सूचकांक को प्राप्त करने का सबसे प्रभावी तरीका क्या है? मैं एंड्रॉइड प्रोजेक्ट में बाहरी जेएआर का उपयोग कैसे कर सकता हूं? मौजूदा एंड्रॉइड प्रोजेक्ट को एक्लिप्स में कैसे आयात करें? निष्पादित करने के लिए फ़ंक्शन द्वारा लिया गया समय मापने का तरीका PHP PDO बनाम सामान्य mysql_connect क्या मैं एक यूआईएल से यूआईएमएज लोड कर सकता हूं? SQL सर्वर में पिछले महीने के रिकॉर्ड प्राप्त करें शैली का उपयोग क्या है = "स्पष्ट: दोनों"? बच्चे एनजी-दोहर से माता-पिता एनजी-दोहराने का सूचकांक एक्सेस करें IPhone में पॉपअप के रूप में प्रदर्शन UIViewController पिंग का उपयोग करते समय ब्लू स्क्रीन जावा में यूयूआईडी के सबसे महत्वपूर्ण बिट्स का उपयोग करके टकराव की संभावना जावा में बूलियन बनाम बूलियन कैसे करता है? ~ (टिल्ड / बैंग बैंग टिल्ड नहीं) एक 'शामिल / शामिल' अर्रे विधि कॉल के परिणाम को बदलते हैं?

NSString के बोल्ड भाग का कोई भी तरीका?

क्या कोई स्ट्रिंग के बोल्ड केवल भाग का कोई तरीका है? उदाहरण के लिए:

लगभग दूरी: 120 मीटर दूर

धन्यवाद!

वेब के समाधान से एकत्रित समाधान "NSString के बोल्ड भाग का कोई भी तरीका?"

आप क्या कर सकते हैं NSAttributedString का उपयोग करें

 NSString *boldFontName = [[UIFont boldSystemFontOfSize:12] fontName]; NSString *yourString = ...; NSRange boldedRange = NSMakeRange(22, 4); NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:yourString]; [attrString beginEditing]; [attrString addAttribute:kCTFontAttributeName value:boldFontName range:boldedRange]; [attrString endEditing]; //draw attrString here... 

कोर पाठ के साथ NSAttributedString ऑब्जेक्ट्स को ड्राइंग करने के लिए इस आसान NSAttributedString गाइड पर एक नज़र डालें।

जैसा कि याकूब ने उल्लेख किया है, आप शायद एक NSAttributedString या NSMutableAttributedString का उपयोग करना चाहते हैं। निम्नलिखित यह एक उदाहरण है कि आप यह कैसे कर सकते हैं।

 NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"Approximate Distance: 120m away"]; NSRange selectedRange = NSMakeRange(22, 4); // 4 characters, starting at index 22 [string beginEditing]; [string addAttribute:NSFontAttributeName value:[NSFont fontWithName:@"Helvetica-Bold" size:12.0] range:selectedRange]; [string endEditing]; 

यदि आप फोंट से परेशान नहीं करना चाहते हैं (जैसा कि फ़ॉन्ट के प्रत्येक भिन्नता में "बोल्ड" शामिल नहीं है), ऐसा करने का एक और तरीका है। कृपया ध्यान रखें, यह वर्तमान में केवल ओएस एक्स पर उपलब्ध है …:

  NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:"Approximate Distance: 120m away"]; [attrString beginEditing]; [attrString applyFontTraits:NSBoldFontMask range:NSMakeRange(22, 4)]; [attrString endEditing]; 

उपरोक्त कोड ने मुझे दुर्घटना दी जब मैंने इस विशेषताएस्ट्रेटेड स्ट्रिंग के साथ यूआईएलबल बनाया था।

मैंने इस कोड का इस्तेमाल किया और यह काम किया:

 NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:string]; NSRange boldedRange = NSMakeRange(0, 1); UIFont *fontText = [UIFont systemFontOfSize:12]; //[UIFont fontWithName:@"Lato-Bold" size:12]; NSDictionary *dictBoldText = [NSDictionary dictionaryWithObjectsAndKeys:fontText, NSFontAttributeName, nil]; [attrString setAttributes:dictBoldText range:boldedRange]; 

एक NSString सिर्फ एक डाटा कंटेनर है इसमें प्रस्तुति संबंधी चिंताओं के बारे में कोई विवरण नहीं है

ऐसा लगता है कि आप शायद क्या करना चाहते हैं, UILabel का बोल्ड हिस्सा है जिसका उपयोग आपके स्ट्रिंग को प्रदर्शित करने के लिए किया जा रहा है। जो मुझे नहीं लगता कि आप कर सकते हैं लेकिन आप हमेशा UI को तीन लेबल में तोड़ सकते हैं, एक "लगभग दूरी": " 120 मीटर " के लिए, और एक "दूर" के लिए। एक-दूसरे के साथ इन-लाइन रखें और आपको वांछित प्रभाव प्राप्त करना चाहिए।

यहां पर चर्चा के रूप में, एक एम्बेडेड स्वरूपण जानकारी के साथ अपनी स्ट्रिंग को प्रदर्शित करने के लिए एक अन्य विकल्प एक UIWebView और थोड़ी सी मार्कअप का उपयोग करना हो सकता है:

http://iphoneincubator.com/blog/windows-views/display-rich-text-using-a-uiwebview

Xamarin ios में आप इस तरह से NSString का बोल्ड हिस्सा कर सकते हैं:

 public static NSMutableAttributedString BoldRangeOfString (string str, float fontSize, int startRange, int lengthRange) { var firstAttributes = new UIStringAttributes { Font = UIFont.BoldSystemFontOfSize(fontSize) }; NSMutableAttributedString boldString = new NSMutableAttributedString (str); boldString.SetAttributes (firstAttributes.Dictionary, new NSRange (startRange, lengthRange)); return boldString; } 

और इस विधि को कॉल करें:

 myLabel = new UILabel (); ... myLabel.AttributedText = BoldRangeOfString("my text", fontSize, startRange, lengthRange); 

मैं @ जैकब रिल्ककिन और @ एंड्रयू मैरिन के जवाब में मिला, अन्यथा, मुझे दुर्घटनाएं मिल गईं यहां IOS 9 के लिए जवाब दिया गया है:

 UIFont *boldFont = [UIFont boldSystemFontOfSize:12]; NSString *yourString = @"Approximate Distance: 120m away"; NSRange boldedRange = NSMakeRange(22, 4); NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:yourString]; [attrString beginEditing]; [attrString addAttribute:NSFontAttributeName value:boldFont range:boldedRange]; [attrString endEditing]; 

मैंने आधिकारिक दस्तावेजों पर एक नज़र डाला: 1 और 2

तीव्र

इसके अलावा उस स्ट्रिंग की श्रेणी भी शामिल करना शामिल है जिसमें आप गतिशील रूप से प्रोत्साहन देना चाहते हैं

 let nameString = "Magoo" let string = "Hello my name is \(nameString)" let attributes = [NSFontAttributeName:UIFont.systemFontOfSize(14.0),NSForegroundColorAttributeName: UIColor.black] let boldAttribute = [NSFontAttributeName:UIFont.boldSystemFontOfSize(14.0)] let attributedString = NSMutableAttributedString(string: string, attributes: attributes) let nsString = NSString(string: string) let range = nsString.rangeOfString(nameString) if range.length > 0 { attributedString.setAttributes(boldAttribute, range: range) } someLabel.attributedText = attributedString 

अपने फॉन्ट को बिना किसी स्ट्रिंग के बोल्ड स्ट्रिंग के लिए, आप स्ट्रोकवड्थ विशेषता का एक नकारात्मक मान के साथ उपयोग कर सकते हैं:

 let s = NSMutableAttributedString(string: "Approximate Distance: 120m away") s.addAttribute(NSStrokeWidthAttributeName, value: NSNumber(value: -3.0), range: NSRange(22..<26))