MacOS SwiftUI中缩小Picker组件尺寸的实现求助
问题描述
我希望实现的Picker尺寸更小(与箭头大小匹配,如目标图所示),但当前实现的Picker尺寸偏大。
目标效果:
当前效果:
使用的SwiftUI代码如下:
Picker("", selection: $inspectorModel.indentUsingSelection) { ForEach(inspectorModel.indentUsingList) { Text($0.name) .font(.system(size: 11)) } } .labelsHidden()
解决方案
可以通过以下几种方式调整Picker尺寸,使其匹配箭头大小:
让Picker收缩到内容大小
添加.fixedSize()修饰符,Picker会自动占用显示内容所需的最小空间:Picker("", selection: $inspectorModel.indentUsingSelection) { ForEach(inspectorModel.indentUsingList) { Text($0.name) .font(.system(size: 11)) } } .labelsHidden() .fixedSize()手动限制Frame宽度
如果fixedSize()的效果不符合预期,可手动设置Picker的最大宽度:Picker("", selection: $inspectorModel.indentUsingSelection) { ForEach(inspectorModel.indentUsingList) { Text($0.name) .font(.system(size: 11)) } } .labelsHidden() .frame(maxWidth: 100) // 根据实际需求调整宽度值使用紧凑样式(iOS 16+)
若你的项目支持iOS 16及以上版本,可切换到.compact样式,该样式本身就是紧凑布局:Picker("", selection: $inspectorModel.indentUsingSelection) { ForEach(inspectorModel.indentUsingList) { Text($0.name) .font(.system(size: 11)) } } .labelsHidden() .pickerStyle(.compact)
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

