내가 가진 문제는 TextView에서 특정 텍스트의 textColor를 변경할 수 있기를 원한다는 것입니다. 연결된 문자열을 사용하고 있으며 TextView의 텍스트에 추가하는 문자열을 원합니다. 내가 사용하고 싶은 것은 NSMutableAttributedString
이지만 Swift에서 이것을 사용하는 방법에 대한 리소스를 찾지 못했습니다. 지금까지 내가 가진 것은 다음과 같습니다.
let string = "A \(stringOne) with \(stringTwo)"
var attributedString = NSMutableAttributedString(string: string)
textView.attributedText = attributedString
여기에서 textColor를 변경해야하는 단어의 범위를 찾아 속성 문자열에 추가해야한다는 것을 알고 있습니다. 내가 알아야 할 것은 attributeString에서 올바른 문자열을 찾은 다음 textColor를 변경하는 방법입니다.
평점이 너무 낮기 때문에 내 질문에 답할 수 없지만 여기에 내가 찾은 답이 있습니다.
나는 일부 코드를 번역에서 번역하여 내 답을 찾았습니다.
NSAttributedString에서 하위 문자열의 속성 변경
다음은 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
여러 문자열의 textColor를 변경하고 싶기 때문에 이것을 처리하는 도우미 함수를 만들 것이지만 이것은 textColor를 변경하는 데 효과적입니다.