2017-05-12 65 views
0

我正在尝试创建一个框架,它执行API调用并使用API​​调用中填充的数据创建PickerView。 iOS客户端将导入这个框架并调用一个公开的函数,该函数应该返回带有加载数据的PickerView。可能创建一个返回PickerView和数据的函数吗?

我设法创建一个函数来创建PickerView,但无法弄清楚如何在PickerView中插入数据。

// Framework Side 

    public static func returnPickerView() -> UIPickerView { 
    let apple = ["apple", "orange", "durian", "banana"] 

    let customPicker = UIPickerView() 

    customPicker.frame = CGRect(x: 0, y: 0, width: 300, height: 300) 
    customPicker.layer.borderColor = UIColor.black.cgColor 
    customPicker.layer.borderWidth = 1 

    return customPicker 
} 
+1

你应该继承'UIPickerView'并且创建你自定义的类 – JuicyFruit

+0

这样做的窍门,谢谢。 – manohjay

回答

0

解决这个问题的方法是创建一个像JuicyFruit所说的自定义类。

class CustomPickerView: UIPickerView { 
    override init(frame: CGRect) { 
     super.init(frame: frame) 

     dataSource = self 
     delegate = self 
    } 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
    } 
} 

extension CustomPickerView: UIPickerViewDelegate { 
    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
     ... 
    } 

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
     ... 
    } 
} 

extension CustomPickerView: UIPickerViewDataSource { 
    func numberOfComponents(in pickerView: UIPickerView) -> Int { 
     ... 
    } 

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
     ... 
    } 
} 
相关问题