Вы должны создать массив для хранения цветов в вашей модели, как тот, который у вас есть для текстов
Модель:
let myText = ["Pos.1", "Main Verb", "Pos.2".... etc
let myColors = [UIColor.blue, UIColor.red, UIColor.green.... etc
, а затем получить к нему доступ таким образом
...
let text = myModel.myText[indexPath.item]
let color = myModel.myColors[indexPath.item]
let myAttributes: [NSAttributedString.Key : Any] = [.foregroundColor: color]
let myAttributedText = NSAttributedString(string: text, attributes: myAttributes)
...
Обратите внимание, что вы разместили не массив, а словарь .Кроме того, если вы изменяете только цвет текста, вам не нужно использовать NSAttributedString
, вы можете изменить метку textColor
свойство
Редактировать:
Согласно предложению @Larme вы также можете создать структуру для хранения данных в вашей модели, чтобы у вас был только один массив:
struct TextSettings {
let text: String
let color: UIColor
}
let myTextSettings = [TextSettings(text: "Pos.1", color: UIColor.blue),
TextSettings(text: "Main Verb", color: UIColor.red),
TextSettings(text: "Pos.2", color: UIColor.green), ...]
и использовать его при настройке ячейки
...
let settings = myModel.myTextSettings[indexPath.item]
let myAttributes: [NSAttributedString.Key : Any] = [.foregroundColor: settings.color]
let myAttributedText = NSAttributedString(string: settings.text, attributes: myAttributes)
...