代码之家  ›  专栏  ›  技术社区  ›  Braver Chiang

当我滚动UIPickerView时,如何实时获取所选值

  •  1
  • Braver Chiang  · 技术社区  · 7 年前

    This is my prototype 例如,在本图中,当我将UIPickerView滚动到 2012 9 28 , 我想要的是 黑色标签的文本将变为 2012 9 28 同时 不按任何按钮,如“完成”按钮

    我使用UIPickerView,我可以在之前获得选定的数据,我也可以通过单击“完成”按钮将数据放入标签,但我 不能 当我滚动时,将数据放入标签中。

    在一般情况下, 我的问题是,当我滚动UIPickerView时,如何获得所选的数据 实时

    有人能帮我吗?ObjectiveC解决方案可以,Swift解决方案对我来说更好,非常感谢

    2 回复  |  直到 7 年前
        1
  •  2
  •   davidethell    7 年前

    不清楚您是在使用UIPickerView还是UIDatePicker。

    对于UIPickerView,您需要实现UIPickerViewDelegate。确保将委托添加到ViewController声明中,并确保在序列图像板中将UIPickerView控件的委托连接到视图控制器。然后实现此功能:

    func pickerView(_ pickerView: UIPickerView, 
            didSelectRow row: Int, 
             inComponent component: Int) {
    
    }
    

    对于UIDatePicker,您需要将情节提要中UIDatePicker的操作连接到视图控制器中的@iAction函数,或者使用addTarget函数在代码中连接它:

    myDatePicker.addTarget(self, action: #selector(self.respondToPicker, for: .valueChanged), 
    
        2
  •  0
  •   Bhavi Lad    7 年前

    让我假设你正在使用 UIDatePicker ,您可以使用 uicontrolEventValue已更改

    喜欢

    datePickerView?.addTarget(self, action: #selector(self.valueChanged(_:)), for: UIControlEvents.valueChanged)
    

    valueChanged()将为,

    func valueChanged(_ datePicker: UIDatePicker) {
        let selectedDate = datePicker.date as NSDate
        print(selectedDate)
    }
    

    如果你正在使用 UIPickerview

    titleForRow公司 :将为您提供滚动值

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
    {
        print("your value")
    }
    

    didSelectRow :将给您选择的值

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
    {
         print("your value")
    }