如何调整SwiftUI WheelPicker滚轮选择器宽度 仅数字区域可滚动
滚轮选择器(WheelPicker)宽度及滚动区域异常解决方法
直接在你现有Picker的修饰符末尾新增两个修饰符即可解决全部问题:
clipped():裁剪超出设置frame的内容,解决选中值超出框架边界显示的问题contentShape(Rectangle()):将手势响应范围严格限定在你设置的frame尺寸内,只有触摸数字区域时才会触发滚轮滚动
修改后的完整代码如下:
VStack { Picker( selection: .constant(10), label: Text("Reps"), content: { Text("10").tag(10) Text("9").tag(9) Text("8").tag(8) Text("7").tag(7) Text("6").tag(6) Text("5").tag(5) Text("4").tag(4) Text("3").tag(3) Text("2").tag(2) Text("1").tag(1) } ) .pickerStyle(WheelPickerStyle()) .frame(width: 100, height: 100) .foregroundColor(Color.white) // 新增修饰符 .clipped() .contentShape(Rectangle()) }
如果想要进一步压缩选择器左右的默认空白,可以在上述代码基础上额外添加负的水平内边距,示例如下:
// 放在clipped()之前即可 .padding(.horizontal, -8)
内容的提问来源于stack exchange,提问作者Rodolfo Bonfini
相关产品推荐
相关产品推荐

