SPPerspective

关于
来自iOS 14的可动画控件的视角。转换和阴影具有相同的动画。
还为持续时间、视点和阴影提供了自定义选项。使用示例应用程序进行视觉编辑,查看视频预览
如果您喜欢这个项目,不要忘记放上星号 ★
查看我的其他库
导航
安装
适用于iOS 12+。支持Swift 5+。需要Xcode 12.0或更高版本。
Swift 包管理器
Swift 包管理器是一个用于管理 Swift 代码分布的工具。它与 Swift 编译系统集成,以自动化下载、编译和链接依赖项的过程。
使用 Xcode 12 集成时,请在 文件 > Swift 包 > 添加包依赖...
中指定它。
https://github.com/ivanvorobei/SPPerspective
CocoaPods
CocoaPods 是 Cocoa 项目的依赖项管理器。有关使用和安装说明,请访问他们的网站。要使用 CocoaPods 集成,请在您的 Podfile
中指定它。
pod 'SPPerspective'
手动
如果您不想使用任何依赖项管理器,可以手动集成。将 Sources/SPPerspective
文件夹放入您的 Xcode 项目中。请确保启用 如需要复制项目
和 创建组
。
快速开始
要对视图应用动画,请使用以下代码
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
。示例应用程序中提供了可视化变换(视频预览),您可以使用它获得良好的值。
其他项目
我喜欢提供帮助。在这里,我提供了一份我保持更新的库列表。要查看没有安装的库的视频预览
,请打开opensource.ivanvorobei.by 网站。
我有带有本地接口和权限管理的库。也提供了一系列有用的扩展工具来加速开发过程。
贡献
我的英语很好。当你阅读文档时,你可以看到这一点。我真的很想有干净、漂亮的文档。如果你看到语法错误并可以帮助修复 Readme,请联系我 [email protected] 或者创建一个 Pull Request。提前感谢您!
其他项目
我喜欢提供帮助。在这里,我提供了一份我保持更新的库列表。要查看没有安装的库的视频预览
,请打开opensource.ivanvorobei.by 网站。
我有带有本地接口和权限管理的库。也提供了一系列有用的扩展工具来加速开发过程。
俄罗斯社区
如果你想收到新教程的通知,请在电报频道上关注。
在聊天中可以帮助你解决复杂和难以理解的问题。
我在YouTube上发布视频教程。