Vấn đề tôi đang gặp phải là tôi muốn có thể thay đổi màu văn bản của văn bản nhất định trong TextView. Tôi đang sử dụng một chuỗi được nối và chỉ muốn các chuỗi tôi đang nối vào văn bản của TextView. Có vẻ như những gì tôi muốn sử dụng là NSMutableAttributedString
, nhưng tôi không tìm thấy bất kỳ tài nguyên nào về cách sử dụng điều này trong Swift. Những gì tôi có cho đến nay là một cái gì đó như thế này:
let string = "A \(stringOne) with \(stringTwo)"
var attributedString = NSMutableAttributedString(string: string)
textView.attributedText = attributedString
Từ đây, tôi biết mình cần tìm phạm vi các từ cần thay đổi Màu văn bản của chúng và sau đó thêm chúng vào chuỗi phân bổ. Những gì tôi cần biết là làm thế nào để tìm các chuỗi chính xác từ chuỗi phân bổ và sau đó thay đổi màu văn bản của chúng.
Vì tôi có xếp hạng quá thấp nên tôi không thể trả lời câu hỏi của chính mình, nhưng đây là câu trả lời tôi đã tìm thấy
Tôi đã tìm thấy câu trả lời của riêng mình bằng cách dịch từ dịch một số mã từ
Thay đổi thuộc tính của chuỗi con trong NSAttributedString
Đây là ví dụ về triển khai trong Swift:
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
Vì tôi muốn thay đổi Màu văn bản của nhiều Chuỗi, tôi sẽ tạo một hàm trợ giúp để xử lý điều này, nhưng điều này có tác dụng với việc thay đổi Màu văn bản.