Ios 未在SwiftUI选项卡视图中调整图像大小

Ios 未在SwiftUI选项卡视图中调整图像大小,ios,swiftui,Ios,Swiftui,我正在尝试在SwiftUI选项卡视图中使用自定义图标。我看不出这段代码有什么问题——我在图像中包含了可调整大小的,但它没有缩小比例 HomeView() .tag(0) .tabItem { VStack { Image("tab-home") .resizable() .aspectRatio(CGSize(width: 20, heigh

我正在尝试在SwiftUI选项卡视图中使用自定义图标。我看不出这段代码有什么问题——我在图像中包含了
可调整大小的
,但它没有缩小比例

HomeView()
          .tag(0)
          .tabItem {
            VStack {
              Image("tab-home")
                .resizable()
                .aspectRatio(CGSize(width: 20, height: 20), contentMode: .fit)
              Text("Home")
            }

          }
当我看到这个时,图像是全尺寸的

图像
是SF符号时,它可以正常工作


有什么想法吗,SwiftUI忍者?

这在UIKit中是一样的,解决方案是只为你的图像使用合适的尺寸


如果您可以接受系统为您选择图像大小,您实际上可以添加一个自定义的
符号图像集来实现这一点。您可以使用任何矢量图标作为基础

导出现有符号 要获得我们需要的符号模板,您可以打开,选择一个图标并将其导出

在草图中编辑 在草图(或您选择的其他工具)中打开。注意,定义了一个独特的结构。我们需要遵循这个结构。 在中间,有一个名为“正则-m”的大小,定义这一个将满足我们的目的。打开“形状”组并将路径元素放在其中

您可以删除其他尺寸。然后,使整个页面可导出并导出为SVG

在Xcode中导入 在XCAsset文件中,添加一个新的
符号图像集
,并将新创建的SVG文件拖放到其中

现在,您可以使用在XCAsset文件中定义的名称简单地引用图像,正如您所期望的那样。图像会自动调整大小,并正确使用强调色:

TabView {
    Text("Hello, world 1").tabItem {
        Image("your.image.name")
        Text("title1")
    }
}

谢谢我以为它可能已经在SwiftUI中解决了,但是没有。是的,你可以使用。renderingMode(.original)解决它。我一直在这样做,但是当在选项卡视图中使用自定义符号时,图像比它应该的小,实际上即使我跳过了编辑步骤,情况也是如此(导出SFSymbol SVG,然后直接在Xcode中将其作为符号资产导入,无需编辑)。知道为什么吗?