最近,我一直在创建一个复杂的视图,允许我在窗体下面使用选取器。在任何情况下,窗体都只有两个选项,因此没有足够的数据向下滚动以获取更多数据。能够滚动此窗体但不能滚动下面的选取器会使视图感觉不好。我无法将选取器放置在窗体内,否则SwiftUI会更改选取器上的样式。而且我不能“t查找任何地方是否可以禁用列表/表单上的滚动而不使用:
.disable(condition)
有没有办法不使用上面的语句就禁止列表或窗体的滚动?下面是我的代码供参考
VStack{
Form {
Section{
Toggle(isOn: $uNotifs.notificationsEnabled) {
Text("Notifications")
}
}
if(uNotifs.notificationsEnabled){
Section {
Toggle(isOn: $uNotifs.smartNotifications) {
Text("Enable Smart Notifications")
}
}.animation(.easeInOut)
}
} // End Form
.listStyle(GroupedListStyle())
.environment(\.horizontalSizeClass, .regular)
if(!uNotifs.smartNotifications){
GeometryReader{geometry in
HStack{
Picker("",selection: self.$hours){
ForEach(0..<24){
Text("\($0)").tag($0)
}
}
.pickerStyle(WheelPickerStyle())
.frame(width:geometry.size.width / CGFloat(5))
.clipped()
Text("hours")
Picker("",selection: self.$min){
ForEach(0..<61){
Text("\($0)").tag($0)
}
}
.pickerStyle(WheelPickerStyle())
.frame(width:geometry.size.width / CGFloat(5))
.clipped()
Text("min")
}
2条答案
按热度按时间nom7f22z1#
在这里
使用我的文章SwiftUI: How to scroll List programmatically [solution]?中的方法,可以添加以下扩展
并将其作为上述演示的示例使用
tp5buhyn2#
您可以在组件(Form或List)上使用
.scrollDisabled(true)
修饰符来完成此行为。