如何调整 SwiftUI tabItem 中图像的大小?

问题描述 投票:0回答:2

我想在 TabView 中使用自定义图像/图标,但是当我使用自定义图像而不是系统图像时,图像太大。我尝试通过 .frame 进行调整,但似乎没有效果。 我还尝试在使用之前调整照片本身的大小,但结果质量很差。

下面,您可以看到我的 tabItem 以及我尝试过的内容。 问题是我的图像在渲染时是全尺寸的,并且无法将其缩小到适当的尺寸。
(.frame 似乎在除了 tabItem 内部之外的其他任何地方都可以正常工作)

import SwiftUI

struct ContentView: View {
    @State var selectedMeasurementSystem = UserDefaults.standard.integer(forKey: "selectedMeasurementSystem")

    var body: some View {
        TabView {
            NearEarthObjectsUI(selectedMeasurementSystem: selectedMeasurementSystem)
            .tabItem {
                Image("asteroid").frame(width: 30, height: 30)
                //Image("asteroid").resizable().frame(width: 30, height: 30)
                //Label("NEOs", image: "asteroid")
                //Label("NEOs", image: "asteroid").frame(width: 40, height: 40)
            }
        }.accentColor(.white)
    }
}

Screenshot of tabItem

swiftui swiftui-tabview
2个回答
0
投票

将图像转换为 sf 符号可能会更好。虽然我认为 tabItem 内的图像大小是有限的。

如果您有图像的 svg,您可以使用它转换为有效的 SF 符号:https://github.com/swhitty/SwiftDraw

然后导入您的资产并按指定名称调用


-4
投票

您可能需要在图像上调用可调整大小的修改器。

Image("cat")
  .resizable() 
  .frame(width: 100, height: 100) 
© www.soinside.com 2019 - 2024. All rights reserved.