Repolode
elijah-semyonov

elijah-semyonov/DuoLikeAnimation

一个 iOS 演示项目,用 SwiftUI Metal 着色器和 Core Motion 模拟可折叠 iPhone 的折叠动画效果。

Star
158
Fork
40
未关闭 Issue
0
最近提交
上个月

这是什么?

DuoLikeAnimation 是一个 iOS 演示项目,仅使用 SwiftUI 着色器和 Core Motion,模拟 iPhone Duo 的折叠动画。Metal 的 layerEffect 接收设备实时姿态,让一块平面手机呈现出类似可折叠设备一半屏幕的折叠效果。

效果把屏幕当作一块磨砂玻璃。设备绕竖直轴倾斜时,界面在空间中保持不动,着色器通过透视重投影、模糊并按玻璃与界面平面的距离变暗画面,光线未命中界面的区域显示为黑色。默认假设眼睛距离屏幕 320 毫米。

项目包含着色器、可调参数的 SwiftUI 修饰符、用于校准零倾斜姿态的 Core Motion 模型,以及带有重新校准和手动倾斜面板的演示界面。模拟器没有运动数据,因此默认启用手动倾斜。

核心功能

  • 01Metal layerEffect 着色器实现透视重投影、基于距离的模糊和变暗。
  • 02Core Motion 提供设备姿态,并以首个采样作为零倾斜基准进行校准。
  • 03通过 .foldEffect(angle:parameters:) 修饰符调用效果,参数可调。
  • 04浮动面板支持重新校准和手动倾斜。
  • 05模拟器上默认启用手动倾斜模式。

适用场景

  • 学习如何用 Metal 编写 SwiftUI layerEffect 着色器。
  • 在 iOS 上原型化可折叠设备或 3D 倾斜界面效果。
  • 研究如何用 Core Motion 姿态数据驱动视觉效果。

快速上手

  1. 1

    在 Xcode 中打开 DuoLikeAnimation.xcodeproj

  2. 2

    在 iOS 设备上运行应用(模拟器没有运动数据,默认使用手动倾斜)

使用前须知

  • 仅适用于 iOS,真实的倾斜效果需要带运动传感器的实体设备。
  • 这是一个演示项目,而不是可复用的库。

标签

常见问题

DuoLikeAnimation 是什么?
一个 iOS 演示项目,用 SwiftUI Metal 着色器和 Core Motion 模拟可折叠 iPhone 的折叠动画效果。 DuoLikeAnimation 是一个 iOS 演示项目,仅使用 SwiftUI 着色器和 Core Motion,模拟 iPhone Duo 的折叠动画。Metal 的 layerEffect 接收设备实时姿态,让一块平面手机呈现出类似可折叠设备一半屏幕的折叠效果。
DuoLikeAnimation 可以免费使用吗?用的什么许可证?
DuoLikeAnimation 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
DuoLikeAnimation 还在维护吗?
半年内有更新。DuoLikeAnimation 最近一次提交是在 2026年9月11日。
DuoLikeAnimation 适合用来做什么?
学习如何用 Metal 编写 SwiftUI layerEffect 着色器。 在 iOS 上原型化可折叠设备或 3D 倾斜界面效果。 研究如何用 Core Motion 姿态数据驱动视觉效果。
DuoLikeAnimation 怎么安装和运行?
在 Xcode 中打开 DuoLikeAnimation.xcodeproj 在 iOS 设备上运行应用(模拟器没有运动数据,默认使用手动倾斜)
在哪里获取 DuoLikeAnimation?
源代码和安装说明在 GitHub 上:https://github.com/elijah-semyonov/DuoLikeAnimation

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目