0

我在这方面花费了太多时间。非常感谢您的帮助。

我的 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()
    
}
4

0 回答 0