如何使用 didSelectRow 为多个 UIPickerView 使用数据

Posted

技术标签:

【中文标题】如何使用 didSelectRow 为多个 UIPickerView 使用数据【英文标题】:How to use data for more than one UIPickerView using didSelectRow 【发布时间】:2020-02-18 19:15:14 【问题描述】:

遇到问题,无法弄清楚如何使用 didSelectRow 方法使用来自 UIPickerView 以外的数据。

问题是组件和行不是分开的,有没有机会使用分开的行和组件?

我试图将 label.text 更改为数组中的一些数据,但即使我更改了一个pickerview,它也会在其他数组中发生变化。

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)  
        resultLabel1.text = "\(pickerData![component][row]) \(timeNumber[row - 1]) \(timePickerData[row - 1])"

      //    print(component)
      //  print(unitsPickerView.selectedRow(inComponent: component))
      //  print(pickerData![component][row])

    

【问题讨论】:

【参考方案1】:

您可以在 didSelectRow 中使用 if 语句来检查当前正在使用哪个 UIPickerView,然后采取相应的措施。比如:

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 
        if pickerView == unitsPickerView 
            // do stuff
         else 
            // do some other stuff
        
    

【讨论】:

以上是关于如何使用 didSelectRow 为多个 UIPickerView 使用数据的主要内容,如果未能解决你的问题,请参考以下文章

Swift中的多个pickerview didSelectRow错误

如何在 DidSelectRow 中关闭 UIPopover?

如何在 swift 中的 tableview 中的 didselectrow 方法中点击内容视图

在 moveRowAt [关闭] 之后找到 didSelectRow 的正确行

uip UDP server广播模式(client能够随意port,而且主动向client发送数据)

UITableView didSelectRow 未调用