You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:24:03