Как сменить цвет текста в pickerview в swift?

Пользователь

от clifford , в категории: Swift , 2 года назад

Как сменить цвет текста в pickerview в swift?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jamey.kohler , 2 года назад

@clifford 

Для того, чтобы сменить цвет текста в UIPickerView, можно использовать метод attributedTitleForRow в сочетании с классом NSAttributedString. Например:

1
2
3
4
5
6
7
8
func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
    let title = "Some Title"
    let attributes: [NSAttributedString.Key: Any] = [
        .foregroundColor: UIColor.blue
    ]
    let attributedString = NSAttributedString(string: title, attributes: attributes)
    return attributedString
}


В этом примере текст будет отображаться синим цветом. Вместо UIColor.blue можно использовать любой другой цвет, описанный в классе UIColor.

Пользователь

от willa_will , 7 месяцев назад

@clifford 

Дополнительно можно добавить логику, чтобы изменить цвет текста в зависимости от определенных условий. Например, если нужно изменить цвет текста в зависимости от значения определенного индекса, то можно сделать следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
    let title = "Some Title"
    var textColor: UIColor
    
    if row % 2 == 0 {
        textColor = .blue
    } else {
        textColor = .red
    }
    
    let attributes: [NSAttributedString.Key: Any] = [
        .foregroundColor: textColor
    ]
    
    let attributedString = NSAttributedString(string: title, attributes: attributes)
    
    return attributedString
}


В этом примере цвет текста будет изменяться в зависимости от того, является ли индекс строки четным или нечетным. Можно настроить логику под свои требования.