来自 iOS 14 的可动画小组件。变换和阴影具有相同的动画效果。
还可以自定义持续时间、透视和阴影。对于可视化编辑,请使用示例应用程序,查看视频预览
如果您喜欢这个项目,请不要忘记 点亮星标 ★
查看我的其他库
可在 iOS 12+ 上使用。适用于 Swift 5+。需要 Xcode 12.0 及更高版本。
Swift Package Manager 是一个用于自动化 Swift 代码分发的工具,并已集成到 swift
编译器中。它与 Swift 构建系统集成,可自动执行下载、编译和链接依赖项的过程。
设置好 Swift 包后,添加为依赖项就像将其添加到 Package.swift
的 dependencies
值中一样容易。
dependencies: [
.package(url: "https://github.com/ivanvorobei/SPPerspective.git", .upToNextMajor(from: "1.4.1"))
]
CocoaPods 是 Cocoa 项目的依赖项管理器。 有关用法和安装说明,请访问其网站。 要使用 CocoaPods 集成,请在 Podfile
中指定它
pod 'SPPerspective'
如果您不想使用任何依赖项管理器,则可以手动集成。 将 Sources/SPPerspective
文件夹放入您的 Xcode 项目中。 确保启用 Copy items if needed
和 Create groups
。
要为您的视图应用动画,请使用此代码
view.applyPerspective(.iOS14WidgetAnimatable)
如果需要应用非动画变换,请使用此代码
view.applyPerspective(.iOS14WidgetStatic)
您可以自定义持续时间、角度、阴影属性等。所有这些自定义都是通过配置文件进行的。 配置可以是可动画的或静态的。 上面您看到的 .iOS14WidgetAnimatable
和 .iOS14WidgetStatic
也是已经具有与原生小组件相同良好使用值的配置。
为了获得精细的配置,最好使用示例应用程序(视频预览)。 您可以实时查看配置中的更改。
接下来是关于自定义的更多详细信息。
当您初始化新的动画配置时,可以设置持续时间
let animationConfig = SPPerspectiveAnimationConfig(duration: 16, distortion: 600, angle: 10, vectorStep: 3.14, shadow: nil)
view.applyPerspective(animationConfig)
如果需要更改默认配置的持续时间,请使用以下方法
let animationConfig = SPPerspectiveConfig.iOS14WidgetAnimatable
animationConfig.animationDuration = 8
view.applyPerspective(animationConfig)
角度是视图将旋转的程度。 要更改它,请在配置中调用 angle
animationConfig.angle = 10
您还可以自定义透视的扭曲。 使用以下方法
animationConfig.distortionPerspective = 600
这两个属性都允许您配置视图的变换。 如果您不知道应该使用哪个值,请查看示例应用程序(视频预览)。 使用滑块,您可以详细自定义它。
阴影也使用配置。 静态和动画配置都包含阴影属性。
这很简单。 要更改模糊、不透明度和颜色,请在配置中调用此方法。
animationConfig.shadowConfig?.blurRadius = 5
animationConfig.shadowConfig?.opacity = 0.3
animationConfig.shadowConfig?.color = .black
翻译有助于自定义阴影的位置,以适应变换的任何状态。 例如,您可能想要进行更多的垂直翻译,以显示更深的变换。
变换可适应每个高亮显示的角。 例如,当高亮显示顶部中心侧时,使用 startVerticalOffset
。 对于底部角,可以使用 cornerVerticalOffset
。 对于底部中心侧,应更改 maximumVerticalOffset
。 水平翻译通过 maximumHorizontalOffset
进行自定义。
animationConfig.shadowConfig?.startVerticalOffset = 8
animationConfig.shadowConfig?.cornerVerticalOffset = 18
animationConfig.shadowConfig?.maximumVerticalOffset = 21
animationConfig.shadowConfig?.maximumHorizontalOffset = 12
为了获得好的结果,您应该使用以下规则:startVerticalOffset
< cornerVerticalOffset
< maximumVerticalOffset
。 视觉变换在示例应用程序(视频预览)中可用,通过它可以获得好的值。
我的英语很差。 一旦您阅读了文档,您就会看到这一点。 我真的很想拥有干净漂亮的文档。 如果您看到语法错误并可以帮助修复自述文件,请通过 hello@ivanvorobei.by 与我联系或提交拉取请求。 提前感谢!
我喜欢提供帮助。 在这里,我提供了一个我持续更新的库列表。 要查看无需安装库的 视频预览
,请打开 opensource.ivanvorobei.by 网站。
我有带有原生界面和管理权限的库。 还有一包有用的扩展程序可以加速您的开发过程。
如果您想收到有关新教程的通知,请订阅 телеграмм-канал。
困难和不明确的任务可以在聊天中得到帮助。
Видео-туториалы выклыдываю на YouTube