Как я могу изменить цвет своего выбора?Изменение цвета UIPicker
Я не хочу менять шрифт или текст. Мой сборщик заполняется и работает точно так, как я этого хочу, что я хочу сделать, это изменить цвет с черного на белый.
Как я могу изменить цвет своего выбора?Изменение цвета UIPicker
Я не хочу менять шрифт или текст. Мой сборщик заполняется и работает точно так, как я этого хочу, что я хочу сделать, это изменить цвет с черного на белый.
Взгляните: http://makeapppie.com/tag/uipickerview-in-swift/
Если вы хотите изменить цвет заголовка каждого элемента можно реализовать:
func pickerView(pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
let titleData = pickerData[row]
var myTitle = NSAttributedString(string: titleData, attributes: [NSFontAttributeName:UIFont(name: "Georgia", size: 15.0)!,NSForegroundColorAttributeName:UIColor.whiteColor()])
return myTitle
}
Swift 3:
func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
let titleData = pickerData[row]
let myTitle = NSAttributedString(string: titleData!, attributes: [NSFontAttributeName:UIFont(name: "Georgia", size: 15.0)!,NSForegroundColorAttributeName:UIColor.white])
return myTitle
}
Это сделало именно то, что мне было нужно, и позволило мне использовать белый текст в режиме выбора на черном фоне. Спасибо –
@Youri Nooijen, отлично подходит для меня, спасибо. –
Если вы хочу больше управление настройка каждого элемента в сборщике ...
Использование UIPickerViewDelegate's "viewForRow" способ.
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
var label: UILabel
if let view = view as? UILabel { label = view }
else { label = UILabel() }
label.textColor = UIColor.blue
label.textAlignment = .center
label.font = UIFont(name: "My-Custom-Font", size: 20) // or UIFont.boldSystemFont(ofSize: 20)
label.adjustsFontSizeToFitWidth = true
label.minimumScaleFactor = 0.5
label.text = getTextForPicker(atRow: row) // implemented elsewhere
return label
}
Очевидно, что вид, который вы возвращаете, может быть более сложным, чем просто UILabel.
Swift 4,0
func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
let titleData = arrayOfPickerData[row]
let myTitle = NSAttributedString(string: titleData, attributes: [NSAttributedStringKey.font:UIFont(name: "Georgia", size: 15.0)!,NSAttributedStringKey.foregroundColor:UIColor.white])
return myTitle
}
Изменить цвет что: шрифт, фон, выбранный элемент, невыбранные пункты? –