Si votre formate de chaîne est comme toujours "Q: what day is it?\nA: bla bla\nQ: what time is it?\nA: bla bla\nQ: what day is it?\nA: bla bla\nQ: what time is it?\nA: bla bla\n"
alors vous pouvez essayer ci-dessous le code:
var str = "Q: what day is it?\nA: bla bla\nQ: what time is it?\nA: bla bla\nQ: what day is it?\nA: bla bla\nQ: what time is it?\nA: bla bla\n"
let textView = UITextView(frame: CGRect(x: 20.0, y: 90.0, width: 250.0, height: 200.0))
textView.backgroundColor = UIColor.white
//separate it with \n
let QuestionsAndAnswersArray = str.components(separatedBy: ["\n"])
var finalStringArr = NSMutableAttributedString()
for item in QuestionsAndAnswersArray {
if item.characters.count > 0 {
let firstChar = item[item.startIndex]
//For Questions
if firstChar == "Q" {
//For new line after every character
let QuestionStr = item + "\n"
var myMutableString = NSMutableAttributedString()
myMutableString = NSMutableAttributedString(string: QuestionStr)
myMutableString.setAttributes([NSForegroundColorAttributeName : UIColor.red], range: NSRange(location:0,length:item.characters.count))
finalStringArr.append(myMutableString)
} else if firstChar == "A" { //For Answers
let answerStr = item + "\n"
//For new line after every character
var myMutableString = NSMutableAttributedString()
myMutableString = NSMutableAttributedString(string: answerStr)
myMutableString.setAttributes([NSForegroundColorAttributeName : UIColor.gray], range: NSRange(location:0,length:item.characters.count))
finalStringArr.append(myMutableString)
}
}
}
textView.attributedText = finalStringArr
Et résultat sera:
Espérons que cela aidera.
La partie la plus difficile est de savoir le délimiteur exacte des questions: un Answsers 'Q: ... A:' 'jusqu'à ce que \ n' et suivant ? Pour le reste, c'est assez simple une fois que vous connaissez les gammes. – Larme
Pouvez-vous fournir le délimiteur s'il vous plaît? Et aussi, êtes-vous sûr que vous pouvez TOUJOURS obtenir ce format? –