SwiftUI Picker问题:Picker内内容的padding设置无效
SwiftUI Picker 内容设置 Padding 的解决方案
直接给Picker里的Text加.padding()无效,是因为默认的滚轮样式(WheelPickerStyle)会强制约束子视图的布局,忽略直接添加的padding。你可以通过以下方式解决:
- 用容器视图包裹文本
把Text放在VStack或HStack这类容器里,给容器添加padding,系统会保留padding的空间:Picker(selection: $picked) { ForEach(0...10, id: \.self) { num in VStack { Text("\(num)") .tag("\(num)") .font(.system(size: 30)) .foregroundColor(pickedMinute == "\(num)" ? .blue : .black) } .padding(20) // 此padding会正常生效 } } label: { Text("picker") } .pickerStyle(.wheel)
如果是使用菜单样式(MenuPickerStyle)这类非滚轮样式,直接给Text加padding就能生效,只有滚轮样式需要用容器包裹来规避系统的布局约束。
内容的提问来源于stack exchange,提问作者nicholas.lcj
相关产品推荐
相关产品推荐

