gpt4 book ai didi

ios - 在 UIPickerView Swift 中更改选定值的颜色

转载 作者:可可西里 更新时间:2023-11-01 01:00:19 25 4
gpt4 key购买 nike

我有 UIPickerView 使用名称数组显示名称

数组的第一个元素是默认值“Select Name”

我想用加里色显示选定的值,用蓝色显示其余名称

此函数用于防止选择默认值:

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if row == 0 {
pickerView.selectRow(row+1, inComponent: component, animated: true)
selectedName = names[row+1]
} else {
selectedName = names[row]
}
}

这个函数可以改变颜色

func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView?) -> UIView {
let pickerLabel = UILabel()
pickerLabel.textColor = (row == pickerView.selectedRowInComponent(component)) ? UIColor.grayColor() : UIColor.blueColor()
pickerLabel.text = names[row].name
pickerLabel.textAlignment = NSTextAlignment.Center
return pickerLabel
}

问题是当我选择选择器的第一个值(不是默认值)时,颜色仍然是蓝色。所有其他项目都正常工作(当我选择它们时它们的颜色变为灰色)

最佳答案

Use the PickerView reloadComponentMethod

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if row == 0 {
pickerView.selectRow(row+1, inComponent: component, animated: true)
pickerView.reloadComponent(component)
selectedName = names[row+1]
}
else {
selectedName = names[row]
}
}

selectRow 只会将滚轮旋转到新行。调用 reloadComponent 刷新数据源以获取新 View

关于ios - 在 UIPickerView Swift 中更改选定值的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34926116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com