iOS
NSAttributedString
खोज…
टिप्पणियों
एक स्ट्रिंग बनाना जिसमें कस्टम कर्निंग (अक्षर रिक्ति)
NSAttributedString
(और इसके NSAttributedString
भाई-बहन NSMutableAttributedString
) आपको उपयोगकर्ता के लिए उनकी उपस्थिति में जटिल होने वाले तार बनाने की अनुमति देता है।
एक सामान्य अनुप्रयोग एक स्ट्रिंग प्रदर्शित करने और कस्टम कर्निंग / पत्र-रिक्ति जोड़ने के लिए इसका उपयोग करना है।
यह इस प्रकार से प्राप्त किया जाएगा (जहां लेबल एक UILabel
), "कर्निंग" शब्द के लिए एक अलग कर्लिंग प्रदान करता है।
तीव्र
var attributedString = NSMutableAttributedString("Apply kerning")
attributedString.addAttribute(attribute: NSKernAttributeName, value: 5, range: NSMakeRange(6, 7))
label.attributedText = attributedString
उद्देश्य सी
NSMutableAttributedString *attributedString;
attributedString = [[NSMutableAttributedString alloc] initWithString:@"Apply kerning"];
[attributedString addAttribute:NSKernAttributeName value:@5 range:NSMakeRange(6, 7)];
[label setAttributedText:attributedString];
स्ट्राइकथ्रू पाठ के साथ एक स्ट्रिंग बनाएं
उद्देश्य सी
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Your String here"];
[attributeString addAttribute:NSStrikethroughStyleAttributeName
value:@2
range:NSMakeRange(0, [attributeString length])];
तीव्र
let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: "Your String here")
attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: NSMakeRange(0, attributeString.length))
फिर आप इसे अपने UILabel में जोड़ सकते हैं:
yourLabel.attributedText = attributeString;
स्विफ्ट में अनुप्रयुक्त स्ट्रिंग्स और बोल्ड टेक्स्ट को लागू करना
let someValue : String = "Something the user entered"
let text = NSMutableAttributedString(string: "The value is: ")
text.appendAttributedString(NSAttributedString(string: someValue, attributes: [NSFontAttributeName:UIFont.boldSystemFontOfSize(UIFont.systemFontSize())]))
परिणाम जैसा दिखता है:
मान है: उपयोगकर्ता द्वारा दर्ज कुछ
किसी शब्द या स्ट्रिंग का रंग बदलना
उद्देश्य सी
UIColor *color = [UIColor redColor];
NSString *textToFind = @"redword";
NSMutableAttributedString *attrsString = [[NSMutableAttributedString alloc] initWithAttributedString:yourLabel.attributedText];
// search for word occurrence
NSRange range = [yourLabel.text rangeOfString:textToFind];
if (range.location != NSNotFound) {
[attrsString addAttribute:NSForegroundColorAttributeName value:color range:range];
}
// set attributed text
yourLabel.attributedText = attrsString;
तीव्र
let color = UIColor.red;
let textToFind = "redword"
let attrsString = NSMutableAttributedString(string:yourlabel.text!);
// search for word occurrence
let range = (yourlabel.text! as NSString).range(of: textToFind)
if (range.length > 0) {
attrsString.addAttribute(NSForegroundColorAttributeName,value:color,range:range)
}
// set attributed text
yourlabel.attributedText = attrsString
नोट :
यहां मुख्य एक प्रयोग है NSMutableAttributedString
और चयनकर्ता addAttribute:value:range
विशेषता के साथ NSForegroundColorAttributeName
एक स्ट्रिंग रेंज के एक रंग बदलने के लिए:
NSMutableAttributedString *attrsString = [[NSMutableAttributedString alloc] initWithAttributedString:label.attributedText];
[attrsString addAttribute:NSForegroundColorAttributeName value:color range:range];
आप रेंज प्राप्त करने के लिए दूसरे तरीके का उपयोग कर सकते हैं, उदाहरण के लिए: NSRegularExpression।
सभी विशेषताओं को हटाना
उद्देश्य सी
NSMutableAttributedString *mutAttString = @"string goes here";
NSRange range = NSMakeRange(0, mutAttString.length);
[mutAttString setAttributes:@{} range:originalRange];
प्रति एप्पल प्रलेखन हम उपयोग करते हैं, के रूप में setAttributes
और नहीं addAttribute
।
तीव्र
mutAttString.setAttributes([:], range: NSRange(0..<string.length))