可以创建一个返回带有数据的 PickerView 的函数吗?

Posted

技术标签:

【中文标题】可以创建一个返回带有数据的 PickerView 的函数吗?【英文标题】:Possible to create a function that returns PickerView with data? 【发布时间】:2017-05-12 16:47:49 【问题描述】:

我正在尝试创建一个框架来执行 API 调用并使用来自 API 调用的填充数据创建一个 PickerView。 ios 客户端将导入此框架并调用一个公开的函数,该函数应返回包含已加载数据的 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

【问题讨论】:

你应该继承 UIPickerView 并创建你的自定义类 成功了,谢谢。 【参考方案1】:

解决这个问题的方法是创建一个自定义类,就像 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 
        ...
    

【讨论】:

以上是关于可以创建一个返回带有数据的 PickerView 的函数吗?的主要内容,如果未能解决你的问题,请参考以下文章

带有pickerview的UItextfield作为第一响应者ios

带有 NSMutableArray 数据的 UITableView 返回空

带有视图控制器的选取器视图

带有 PickerView 的 UITextField:不允许编辑

对返回空数据的两个按钮使用相同的pickerView

PickerView 仅返回我的数组中添加的最后一个对象