IOS swift UIPickerview问题

IOS swift UIPickerview问题,ios,swift,uibutton,uipickerview,Ios,Swift,Uibutton,Uipickerview,如何在视图控制器中添加其他选择器视图 import UIKit class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource { @IBOutlet weak var UnitTypeLabel: UILabel! @IBOutlet weak var UnitTypeSelectBTN: UIButton! @IBOutlet weak var UnitTyp

如何在视图控制器中添加其他选择器视图

import UIKit

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
    @IBOutlet weak var UnitTypeLabel: UILabel!
    @IBOutlet weak var UnitTypeSelectBTN: UIButton!

    @IBOutlet weak var UnitTypePicker: UIPickerView!




    let UnitDataArray = ["Unit for Weight","Unit for Length","Unit for Area","Unit for Volume","Unit for Quantity"]
    let UnitforLengthData = ["m","km","cm","mm","yd","ft","in"]
    let UnitforWeightData = ["g","kg","m.t","l.t","sh.t","lb"]


    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }
    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return UnitDataArray.count
    }
    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return UnitDataArray[row]
    }
    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        return UnitTypeLabel.text = UnitDataArray[row]
    }



    override func viewDidLoad() {
        super.viewDidLoad()
        //UnitTypePicker.hidden = true
        UnitTypePicker.delegate = self
        UnitTypePicker.dataSource = self
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

应该是这样的,您必须实现pickerView viewForRow方法来实现这一点:

import UIKit

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {

    @IBOutlet weak var pickerView: UIPickerView!

    let UnitDataArray = ["Unit for Weight","Unit for Length","Unit for Area","Unit for Volume","Unit for Quantity"]

    override func viewDidLoad() {
        super.viewDidLoad()
        // pickerView delegate n dataSource
        pickerView.dataSource = self
        pickerView.delegate = self
    }

    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return UnitDataArray.count
    }

    //MARK: Delegates
    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
        return UnitDataArray[row]
    }

    func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!) -> UIView
    {
        var pickerLabel = UILabel()
        pickerLabel.textColor = UIColor.blackColor()
        pickerLabel.text = UnitDataArray[row]
        if let pickerViewFont = UIFont(name: "HelveticaNeue-Thin", size: 30) {
            pickerLabel.font = pickerViewFont
        }
        pickerLabel.textAlignment = NSTextAlignment.Center
        return pickerLabel
    }

    func pickerView(pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
        return 40.0
    }
}

如果您想要更多数量的pickerView,则必须按如下方式设置其中的组件数量:

func numberOfComponentsInPickerView(pickerView: UIPickerView!) -> Int {
    return 2  //number of pickerViews
  }
通过更改数量,可以在同一个viewController中设置pickerView的数量


但是,如果您想在任何操作后仅为一个pickerView更改数据集,那么您可以看到这一点

如果我想添加两个pcikerview,我可以只添加第二个数组,但如何添加呢?如果您想有两个pickerView,您必须在情节提要中创建第二个pickerView,然后将其拖到IBOutlet,然后像这样更改委托:
func-pickerView(pickerView:UIPickerView,numberofrowsinsincomponent:Int)->Int{if-pickerView==youfirstpickerviewboutlet{return UnitDataArray.count}否则{return ArrayForTheSecondPickerView.count}
您应该对titleForRow和viewForRow方法执行相同的操作。我可以使用iAction切换选择器视图吗?还是需要使用iOutlet:ui按钮“切换选择器视图”下的含义是什么?您想在窗口中有两个选择器视图,还是只想按一个并通过按钮切换其数据?对不起,只想按一个并通过按钮切换其数据,但如果返回2,则在一个选择器视图中显示两行,对吗?