不同的 UIPivkerviews 不同数量的组件

different UIPivkerviews different number of components

我正在尝试向一个视图添加不同的 uipickerviews,问题是所有选择器视图的组件数量都设置为一个:

func numberOfComponents(in pickerView: UIPickerView) -> Int {
    return 2
}

是否可以为不同的uipickerviews设置不同数量的组件?同样的问题适用于其他功能,例如行数

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int)

并使用组件本身进行来源:

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int)

如何在swift中实现uipickerviews的区分?

为您的 pickerView 创建 IBOutlets,然后在返回值之前检查函数中的 pickerview

@IBOutlet weak var picker1: UIPickerView!
@IBOutlet weak var picker2: UIPickerView!

func numberOfComponents(in pickerView: UIPickerView) -> Int {
    if pickerView == picker1 {
        return 2
    }
    else {
       return 1
    }
}

编辑:如果您以编程方式创建选择器,请为它们创建属性

var picker1: UIPickerView?
var picker2: UIPickerView?

func createMyPickers() {
    picker1 = UIPickerView(...
    picker2 = UIPickerView(...
}

这样您就可以在委托方法中访问您的选择器!