使用 SwiftUI 制作镜面翻转反射倒影效果

预览效果

使用 SwiftUI 制作镜面翻转反射倒影效果
镜面翻转倒影效果

实现思路

在需要实现镜面翻转效果的视图背景设置 background 中,重新创建个一模一样的视图,对这个视图进行翻转 rotation3DEffect 、由上到下的颜色渐变 LinearGradient 、再把这个视图通过 offset 向下偏移就能做出一个基础的镜面翻转倒影效果。


实现代码

struct ContentView: View {
    var body: some View {
        VStack {
            bodyView()
                // 背景设置中制作翻转效果
                .background(
                    bodyView()
                        // 设置轻微模糊效果
                        .blur(radius: 0.5)
                        // 进行 3D 翻转
                        .rotation3DEffect(.init(degrees: 180), axis: (x: 1, y: 0, z: 0))
                        .mask({
                            // 再给一个渐变的遮罩
                            LinearGradient(colors: [
                                .white.opacity(0.75),
                                .white.opacity(0.3),
                                .white.opacity(0.1),
                                .clear
                            ], startPoint: .top, endPoint: .bottom)
                        })
                        // 纵向偏移到合适的位置
                        .offset(y: 86)
                )
        }
        .padding()
    }
    
    @ViewBuilder
    func bodyView()-> some View {
        HStack {
            Image("codeun")
                .resizable()
                .frame(width: 108, height: 86)
            Text("www.codeun.com")
                .font(.system(size: 28))
                .fontWeight(.semibold)
            
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

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

(1)
上一篇 2023-06-05 下午10:32
下一篇 2023-06-11 上午10:26

发表回复

登录后才能评论