设置连续轮式拾取器-SwiftUI



如何显示可以在所选范围内向上或向下无限滚动的选择器?就像在ios设备中设置闹钟一样。现在,如果我的范围在0到60之间,我只能向上滚动到60,然后向下滚动回到0。我希望它是连续的,当我达到60岁时,我会重新开始循环。

您可以简单地添加一个大的量作为范围的上限,并将初始值设置为其一半,得到的结果值将提醒除以60value % 60。要在选取器值发生变化时执行方法,可以使用[post][1]中所示的方法:

import SwiftUI
struct ContentView: View {
@State private var selection = 300
var minutes: Int { selection % 60 }
var body: some View {
Picker(selection: $selection, label: Text("Minutes:")) {
ForEach(0 ..< 600) {
Text(String(format: "%02d", $0 % 60))
}
}.onChange(of: selection, perform: valueChanged)
}
func valueChanged(_ value: Int) {
selection = 300 + value % 60
print("Minutes: (minutes)")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}

最新更新