मेरे पास जो समस्या है, वह यह है कि मैं एक टेक्स्ट दृश्य में कुछ पाठ के टेक्स्टकोलर को बदलने में सक्षम होना चाहता हूं। मैं एक संक्षिप्त स्ट्रिंग का उपयोग कर रहा हूं, और बस वह स्ट्रिंग चाहता हूं जिसे मैं टेक्स्ट व्यू के पाठ में जोड़ रहा हूं। ऐसा प्रतीत होता है कि मैं जो उपयोग करना चाहता हूं NSMutableAttributedString
, वह है , लेकिन मुझे स्विफ्ट में इसका उपयोग करने का कोई संसाधन नहीं मिल रहा है। मेरे पास अब तक ऐसा कुछ है:
let string = "A \(stringOne) with \(stringTwo)"
var attributedString = NSMutableAttributedString(string: string)
textView.attributedText = attributedString
यहाँ से मुझे पता है कि मुझे उन शब्दों की श्रेणी को खोजने की आवश्यकता है जिनके लिए उनके टेक्स्टकोलर को बदलने की आवश्यकता है और फिर उन्हें जिम्मेदार स्ट्रिंग में जोड़ें। मुझे यह जानने की आवश्यकता है कि एट्रिब्यूटेड स्ट्रिंग से सही तारों को कैसे खोजना है, और फिर उनके टेक्स्टकोलर को बदल दें।
चूंकि मेरे पास बहुत कम रेटिंग है, इसलिए मैं अपने प्रश्न का उत्तर नहीं दे सकता, लेकिन यहाँ उत्तर मुझे मिला है
मुझे कुछ कोड का अनुवाद करने से अनुवाद करके अपना जवाब मिला
NSAttributedString में सबस्ट्रिंग की विशेषताओं को बदलें
यहाँ स्विफ्ट में कार्यान्वयन का उदाहरण दिया गया है:
let string = "A \(stringOne) and \(stringTwo)"
var attributedString = NSMutableAttributedString(string:string)
let stringOneRegex = NSRegularExpression(pattern: nameString, options: nil, error: nil)
let stringOneMatches = stringOneRegex.matchesInString(longString, options: nil, range: NSMakeRange(0, attributedString.length))
for stringOneMatch in stringOneMatches {
let wordRange = stringOneMatch.rangeAtIndex(0)
attributedString.addAttribute(NSForegroundColorAttributeName, value: UIColor.nameColor(), range: wordRange)
}
textView.attributedText = attributedString
चूँकि मैं कई स्ट्रिंग्स के टेक्स्ट कॉलर को बदलना चाहता हूं, इसलिए मैं इसे संभालने के लिए एक हेल्पर फंक्शन करूँगा, लेकिन यह टेक्स्ट कॉलर को बदलने के लिए काम करता है।