如何在SwiftUI中将图像与文本对齐

如何在SwiftUI中将图像与文本对齐,swiftui,Swiftui,下面的代码来自一个简单的SwiftUI内容视图。它显示图像和文本,但图像以起始位置拉伸 struct CustomView: View { var imageName: String = "" var text: String = "" var body: some View { HStack(alignment: .center, spacing: 05){ Image(imageName).resizable()

下面的代码来自一个简单的SwiftUI内容视图。它显示图像和文本,但图像以起始位置拉伸

struct CustomView: View {
var imageName: String = ""
var text: String = ""
var body: some View {
    HStack(alignment: .center, spacing: 05){
        Image(imageName).resizable()
            .frame(width: 50, height: 30)
        Text(text).font(.system(size: 10, weight: .light, design: .default))
            .foregroundColor(.white)
            .frame(width:60)
    }
}
}


我不太明白“…图像拉伸开始位置”。 但是,下面是一个基本测试,您的代码添加了“.fixedSize()”。 你认为哪些结果不正确

struct CustomView: View {
    @State var imageName: String = ""  // <---
    @State var text: String = ""      // <---
    var body: some View {
        HStack(alignment: .center, spacing: 05){
            Image(systemName: imageName).resizable()
                .scaledToFit() // <--- 
                .frame(width: 50, height: 30)
            Text(text).font(.system(size: 10, weight: .light, design: .default))
                .frame(width:60)
        }.fixedSize()       // <----
        .border(Color.red)  // for testing
    }
}

struct ContentView: View {
    var body: some View {
        VStack {
            CustomView(imageName:"clock", text:"clock")
            CustomView(imageName:"info", text:"info")
            CustomView(imageName:"globe", text:"globe")
        }.padding()
    }
}
struct CustomView:View{

@状态变量imageName:String=“”//我不清楚这是什么问题。您共享的代码似乎与您显示的图像不匹配,我也不清楚您所体验的与您期望的结果有何不同。就像我使用不同的imageName和文本调用了三次CustomView,视图应该如上所示,您所体验的情况如何g是不同的?文本不是左对齐的?你能提供一个最小的可复制的例子吗?左侧的图像根据第一个图像(150+)的宽度拉伸感谢您的响应,但是如果图像大小不一样怎么办。第一个图像(150+)是50*30,其他是20*20。这就是所有小图像拉伸的位置。您可以尝试:image(imageName)。resizeable().scaledToFit().frame(宽:50,高:30)或use.aspectRatio(1,contentMode:.fit)非常感谢。scaledToFit()在放置到框架之前已经工作过了