2017-08-18 48 views
-4

我需要根据数组给出行的标题,但我不知道如何做到这一点。我是iOS新手。如何在Swift 3的PickerView中为行设置标题?

class ViewController: UIViewController , UIPickerViewDelegate, UIPickerViewDataSource{ 

    @IBOutlet weak var pickerView: UIPickerView! 
    @IBOutlet weak var label: UILabel! 
    var names: Array<String>? 
    var department: Array<String>? 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     names = ["Vineeta", "Shubham" ,"Anand", "Vivek", "Akshay", "Harshit", "Vikas", "Prasoon", "Sunil"] 
     department = ["iOS","Angular", ".Net", "iOS","iOS", ".Net", "Android","Android", "Angular"] 
    } 

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

    func numberOfComponents(in pickerView: UIPickerView) -> Int { 
     return 2 
    } 
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
     return 9 
    } 

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
     if component == 0 { 
      [names o] 
     } 
    } 


} 
+2

你所以看起来你已经尝试过的东西,而且重要的代码部分是空白提供了大量的代码。你只是要求某人为你写代码。 – Abizern

+0

感谢您的反馈@Abizem,下次我会在提出任何问题之前记住这一点。 –

回答

1

使用此代码 -

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
    if component == 0 { 
     return names?.count 
    } 
    else 
    return department?.count 

} 

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    if component == 0 { 
     return names?[row] 
    } 
    else 
    { 
     return department?[row] 
    } 
} 
+1

@abhishek你必须使用开关盒来代替条件以获得更好的性能。 – shahnilay86

相关问题