我在这方面花费了太多时间。非常感谢您的帮助。
我的 iOS 应用程序页面中有一个选择器视图,并且我有以下代码来更改所选行的文本颜色。然而,由于某些原因,第 1 行的反应非常奇怪。我在文本字段的附件视图中添加了一个按钮,该按钮会显示选择器视图。当我点击按钮时,输入视图切换到数字键盘。如果我再次点击该按钮,它将切换回选择器视图。这是问题所在。如果我选择我的选择器视图的第 1 行,第 1 行文本的颜色会变为蓝色(如我所愿)。但是,如果我点击按钮切换到数字键盘模式,然后点击按钮切换回选择器视图,则第 1 行中所选文本的颜色会变回黑色。
请给我一些启示。谢谢。
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
var title = UILabel()
if let view = view {
title = view as! UILabel
}
title.font = UIFont.systemFont(ofSize: 20, weight: UIFont.Weight.medium)
title.textColor = row == pickerView.selectedRow(inComponent: component) ? .systemBlue : .black
title.text = pickerViewData[row]
title.textAlignment = .center
return title
}
并且开关按钮功能在下面......只有第1行没有按预期工作......这真的很奇怪......所有其他行都完全按照预期改变颜色......即使我使用titleForRow和AttributeTitleForRow,我得到相同的结果。这是一个 Swift 错误..?我试图搜索“picker view row #1 issue”,但似乎没有很多问题。
功能开关输入视图(){
pickerViewStatus = !pickerViewStatus
resetInputView()
pickerView.reloadAllComponents()
}
func resetInputView() {
switch pickerViewStatus {
case true:
activeTextField.inputView = pickerView
case false:
activeTextField.inputView = nil
activeTextField.keyboardType = .numberPad
activeTextField.becomeFirstResponder()
}
addToolbarForPickerView()
activeTextField.reloadInputViews()
}