我想在 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)
}
}
将图像转换为 sf 符号可能会更好。虽然我认为 tabItem 内的图像大小是有限的。
如果您有图像的 svg,您可以使用它转换为有效的 SF 符号:https://github.com/swhitty/SwiftDraw
然后导入您的资产并按指定名称调用
您可能需要在图像上调用可调整大小的修改器。
Image("cat")
.resizable()
.frame(width: 100, height: 100)