将SwiftUI视图移入UIKit项目后,预览中资产无法显示的问题
SwiftUI预览无法加载图片的解决方案
核心原因:预览器的Bundle上下文差异
模拟器运行时使用主App的完整Bundle环境,而SwiftUI预览默认可能无法正确关联当前模块的资源,导致图片引用失效。
解决步骤:
显式指定Image的Bundle
修改你的customIcon函数,给Image添加bundle参数,指定当前模块的Bundle:@ViewBuilder func customIcon(image named: String, multiplier: Double = 1.0) -> some View { Image(named, bundle: .module) .interpolation(.none) .resizable() .frame(width: 15 * multiplier, height: 12 * multiplier, alignment: .leading) }.module会自动指向当前代码所在模块的Bundle,确保预览器能正确定位Assets中的图片资源。验证资源的Bundle配置
检查Assets文件夹是否被正确添加到目标的资源拷贝列表:- 选中项目文件,切换到Build Phases标签页
- 展开Copy Bundle Resources,确认
Assets.xcassets在列表中 - 如果不在,点击
+按钮添加该资源文件
强制刷新预览环境
完成上述修改后,点击预览窗口的Resume按钮,或使用快捷键Command+Option+P重新加载预览。
内容的提问来源于stack exchange,提问作者Mercutio
相关产品推荐
相关产品推荐

