SwiftUI:带有 scaleEffect 的 ZStack - 如何将缩放的图像与底部对齐?

问题描述

我有一个 ZStack,其中显示了一个图像。 在某些情况下需要缩放图像。

我无法在 ZStack 底部对齐缩放图像,它始终显示在中间。

我尝试将 ZStack(alignment: .bottom) 与 .alignmentGuide(.bottom) 结合用于图像,但这不会改变结果。

还在图像周围放置一个 VStack 并在其上方放置一个 Spacer() 不会改变结果。

HStack 不相关,只显示出来,因为我在这个构造中需要一个 ZStack。但主要问题在于 VStack,它在 ZStack 的空间中缩放后不会移动。

.scaleEffect 似乎只是使用原始图像的位置和框架并将缩放后的图像放在中间。这是 scaleEffect 的限制吗?还可以使用哪些功能?

This is my View (reduced code): // 我将背景涂成紫色,以显示 ZStack 的完整大小

var body: some View {
    ZStack(alignment: .bottom) {
        Color.purple
        Image(battlingIndividual.getMonster().getStatusImageName(battlingIndividual.status))
            .resizable()
            .scaledToFill()
            .scaleEffect(battlingIndividual.getMonster().size.scaleValue)
        HStack() {
            SkillViews(battlingIndividual: battlingIndividual)
            Spacer()
        }
      }
}

结果是这样的:

current outcome

但它应该是这样的:

desired outcome

编辑:我为图像添加了背景,以显示图像在 ZStack 中居中。

Image-Background in gray


解决方案: 在这种情况下我们不需要对齐,我们需要一个锚点:

.scaleEffect(battlingIndividual.getMonster().size.scaleValue,anchor: .bottom)

解决方案图片:

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)