SwiftUI 卡片3D翻转效果示例

昨天刚好做了一个卡片翻转的效果,单独写出来做成一个示例。

3D翻转 其实就是一个关键修饰器 rotation3DEffect ,使用它来给视图添加3D立体的旋转动画效果。

rotation3DEffect 需要提供两个必须的参数:旋转角度旋转轴

示例效果图


示例代码

struct ContentView: View {
    
    @State var isFlipped = false
    var body: some View {
        VStack {
            ZStack {
                // 卡片正面视图
                CardView(backDegrees: 0, frontDegress: -90, isFlipped: $isFlipped, imgName: "front")
                    // 应用 3D 旋转效果
                    .rotation3DEffect(
                        .degrees(isFlipped ? 0 : -90), axis: (x: 0.0, y: 1.0, z: 0.0)
                    )
                    // 根据翻转状态添加动画效果,翻转时无延迟,未翻转时延迟 0.35 秒
                    .animation(isFlipped ? .linear.delay(0.35) : .linear, value: isFlipped)
                // 卡片背面视图
                CardView(backDegrees: 90, frontDegress: 0, isFlipped: $isFlipped, imgName: "back")
                    .rotation3DEffect(
                        .degrees(isFlipped ? 90 : 0), axis: (x: 0.0, y: 1.0, z: 0.0)
                    )
                    .animation(isFlipped ? .linear : .linear.delay(0.35), value: isFlipped)
            }
            // 点击时触发翻转动画
            .onTapGesture {
                withAnimation(.easeIn) {
                    isFlipped.toggle()
                }
            }
        }
    }
}

示例下载

SwiftUI 卡片3D翻转效果示例

SwiftUI 卡片3D翻转效果示例Demo

赞助会员赞助会员¥免费
资源价格 ¥2.00 销售数量 3 更新时间 2024-01-07
已付费?登录刷新

  本文自 https://www.codeun.com 发布,相应代码均自主编写并严格审阅和测试,完整代码中包含丰富的学习笔记和使用方式、实用技巧。
  · 如若转载,请注明出处:https://www.codeun.com/archives/1294.html ·

(0)
上一篇 2023-12-27 下午2:55
下一篇 2024-01-31 下午7:06

发表回复

登录后才能评论