iOS 16新增.accessoryInline Widget中图片无法渲染问题求助
iOS 16 .accessoryInline Widget 图片不显示问题解决
原因及修复方案
- 缺少明确尺寸约束:
.accessoryInline属于紧凑布局的小部件,仅设置resizable()会导致图片因无尺寸约束而无法渲染,只留下空白。必须配合frame指定合适的宽高。 - 适配紧凑布局尺寸:该类型小部件的整体高度受系统限制(约20pt),图片尺寸需控制在这个范围内,避免被裁剪或挤压。
修复后的代码:
case .accessoryInline: HStack(spacing: 4) { Image("mysymbol.car") .resizable() .frame(width: 16, height: 16) // 适配紧凑布局的尺寸 .widgetAccentable() Text("My Static Title") .font(.caption) // 可选:调整字体大小,保持视觉协调 }
额外检查项
- 确认自定义SF Symbol的Asset配置:确保其Render As设置为
Template Image,且支持iOS 16及以上版本。 - 之前在
.accessoryRectangular中正常显示,是因为该类型小部件有更大的布局空间,系统会自动适配尺寸,而.accessoryInline无此特性。
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

