网站建设工作基本流程全国免费发布信息平台
实战需求
SwiftUI 界面大全之文本折叠书签动画组件3D(中文教程含源码)
本文价值与收获
看完本文后,您将能够作出下面的界面
基础知识
效果本身其实很简单,包括三件事:
- 图像的旋转
- 图像的垂直移动与应用的旋转同步
- 一些阴影模拟阴影以获得更真实的 3D 效果
为了计算旋转,我们用两个新函数扩展了 Angle 结构:
extension Angle {static func offset(height: CGFloat, inset: CGFloat = 0) -> CGFloat {return 100 / (height + inset)}static func rotation(from geo: GeometryProxy, inset: CGFloat) -> Self {let scrollOffset = geo.scrollOffset()let translationOffset = offset(height: geo.