如何在SwiftUI中将图像与文本对齐
下面的代码来自一个简单的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()
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()在放置到框架之前已经工作过了