Swiftui如何以编程方式调整图像和文本之间的间距?

Swiftui how to programatically adjust spacing between images and text?

我正在尝试以编程方式在 swiftui 中获取对齐的文本图像对。可能吗?

我希望单词 "Visit" 在两行中从相同的位置开始。

这是我的代码:

HStack{
        Image(systemName: item.leftImage) // A system image name
        Text(item.text) // A text representing the item
}

我知道我可以为 HStack 本身添加间距,但这不能解决我的问题。 由于 apple 提供的每个系统图像都有不同的大小,我想我应该以编程方式以某种方式确定应该在每个图像与文本之间实例化的间距。

我该怎么做?

Image一个常量框架,如下所示:

HStack {
    Image(systemName: item.leftImage)
        .frame(width: 32)
    Text(item.text) // A text representing the item
}

我建议为图像框架使用明确的宽度,这将自动适应任何符号并使其居中

HStack{
        Image(systemName: item.leftImage)
           .frame(width: 28)
        Text(item.text)
}

backup

HStack 以垂直对齐为参数。然后文字和图标垂直对齐。

HStack(alignment: .center)
{
    Image(systemName: item.leftImage) // A system image name
    Text(item.text) // A text representing the item
}

要对齐文本,请给图像加框 width。您需要确定图像可以采用的最大宽度。

    VStack(alignment: .leading)
    {
        HStack(alignment: .center)
        {
                Image(systemName: "pause") // A system image name
                    .frame(width: 50)
                Text("Test") // A text representing the item
        }
        HStack(alignment: .center)
        {
                Image(systemName: "cloud") // A system image name
                    .frame(width: 50)
                Text("Test") // A text representing the item
        }
    }