【发布时间】:2017-11-01 05:10:58
【问题描述】:
我必须更改UIPickerView 中所选行的颜色。
我确实设法改变了颜色,我知道这个问题已经有好几个回复了,无论如何这些都不能让我满意:通过这些实现,pickerview 的动画有问题,我不喜欢它。
这是当前解决方案的代码
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
var label: UILabel
if view == nil {
label = UILabel()
} else if view is UILabel {
label = view as! UILabel
} else {
label = UILabel()
}
let title: NSAttributedString
if self.model?.selectedValue == row {
title = UIPickerView.attributedString(with: .selectedRow, text: "\(model?.years[row] ?? 0)")
} else {
title = UIPickerView.attributedString(with: .unselectedRow, text: "\(model?.years[row] ?? 0)")
}
label.attributedText = title
return label
}
当用户滚动时,我会重新加载组件。
但正如您在下图中看到的,当用户滚动时,绿色区域会移动,并且有几分之一秒的时间,绿色标签位于选择器指示器下方,而选定的行为黑色。
我想要的是选择器指示器内部的所有内容都是绿色的,而外部保持默认的灰色阴影。
我该如何实现?
【问题讨论】:
标签: ios swift uikit uipickerview