答案 0 :(得分:1)
是的。下面的示例是针对一个组件的。
var pickerArray = [String]()
var selectedRow: Int {
return pickerView.selectedRow(inComponent: 0)
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
pickerView.reloadComponent(component)
}
func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
var color = UIColor.gray
if row == selectedRow {
color = UIColor.blue
} else if selectedRow == row - 1 || selectedRow == row + 1 {
color = UIColor.black
}
return NSAttributedString(string: pickerArray[row], attributes: [NSAttributedString.Key.foregroundColor: color])
}
也许存在另一种方式,但是我认为这已经足够了:]
// Update1:不推荐
您可以覆盖(hitTest:point:event)并从中返回self,然后在(touchesMoved:touches:event)上重新加载组件。但是滚动和选择器上的触摸将不起作用。您将需要做其他事情:(
答案 1 :(得分:0)
@Deryck Lucian 更新答案:
if(EMSCRIPTEN)