我制作了这个小动画,效果很好,只是主VStack的"灰色背景"已经达到了他的最大值height.

你认为有没有可能让image出现/存在,而不是在不透明度上工作,这样当image显示时,"灰色背景"可以扩展?

import SwiftUI

struct ExampleView: View {
    @State private var isSowing = false

    var body: some View {
        VStack() {
            HStack() {
                Image("photo")
                    .onAppear { animateImage() }
                VStack() {
                    Text("Name")
                    Text("Company")
                }
                Spacer()
            }
            Image("image")
                .opacity(isSowing ? 1 : 0)
                .offset(y: isSowing ? 0 : 80)
        }
        .background(Color.grey)
    }

    private func animateImage() {
        withAnimation(.easeInOut.delay(1)) {
            isSowing = true
        }
    }
}

推荐答案

if将图像换行.

VStack {
    HStack() {
        ...
    }
    if isSowing {
        Image("my_image")
            .transition(.push(from: .bottom))
    }
}
.background(Color.gray)

我假设当图像出现时,你添加了.offset修改器来实现"从底部推送"的效果.你可以用transition来代替它.

(IMHO .push(from: .top)看起来更好)

Swift相关问答推荐

使用SWIFT宏从另一个枚举添加 case

OBJC代码中Swift 演员的伊瓦尔:原子还是非原子?

我在SwiftUI中的动画无法正常工作

不能将符合协议的SWIFT类的实例分配给需要该协议的Objective-C属性

swift:只要框架名称中有一个带有框架名称的公共实体,就指定框架中公共 struct 的路径

ToolbarItem 包含在动画中但不应该包含在动画中

将 ArgumentParser 与 Swift 并发一起使用

macOS 的窗口框架中使用的真实类型和真实类型是什么?

swift 是否遇到 Java 的 2gb 最大序列化大小问题?

SwiftUI 视图的默认成员初始化器 VS 自定义初始化器

不要从 NumberFormatter 获取货币符号

如何在界面生成器中创建 UILayoutGuide?

如何实现 Swift 的 Comparable 协议?

从 NSData 对象在 Swift 中创建一个数组

Swift 中的 PageViewController 当前页面索引

Swift:如何从函数返回类类型

如何在 Swift 中遍历 struct 属性?

Swift UITableView reloadData 在一个闭包中

Switch 语句中的字符串:String不符合协议IntervalType

NSLocationWhenInUseUsageDescription 警告,但我已经添加了