SWIFT4 - 如何在滚动时检测来自UIPicker的值

时间:2018-03-21 16:46:34

标签: swift uipickerview

我正在尝试在滚动时从UIPicker读取数据。只有在UIPicker不移动时,Didselectedrow才会返回行值。您是否知道在滚动时从UIPicker捕获值的其他方法? 谢谢你的帮助。最好的问候。

更新: 我发布了我的请求,因为我需要确切知道中心行上的传递数据,获取它们并相应地将其他对象更新为UIView。

我尝试使用计时器调用读取函数,但是在滚动时没有选择自己更新,请参阅下面的代码:

// define the timer
let cycleTimer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(self.readUIPicker), userInfo: nil, repeats: true)

定义了定时器,它每0.1秒调用读取函数

// read UIPicker
func readUIPicker() {
       let  selectedRow = myPicker.selectedRow(inComponent: 0)

       // Do something here based on selectedRow value
       print("SelectedRow = \(selectedRow)")
}

问题是selectedRow仅在滚动动作停止后才会更新。无法控制传递元素。

任何建议表示赞赏。提前谢谢。

1 个答案:

答案 0 :(得分:1)

虽然在滚动时没有API来获取选择器的值,但是选择器视图将调用您的数据源并委托方法来获取给定行的标题或视图,以便它可以显示为用户滚动选择器视图。因此,您可以做的最好的事情是利用选择器视图只询问某行的标题或视图这一事实。但那一行不一定是当前的中心行。