Seek
Seek 使得根据百分比值对 UIView 和约束进行动画变得简单。动画通过设置起始值和结束值来定义,然后可以通过提供一个介于 0 和 1 之间的浮点数来将动画移动到这两个值之间的任何位置。
Seek 目前支持 alpha、变换(平移、旋转、缩放)和约束常量的起始值和结束值。
要求
- iOS 11.0+
- Xcode 11.0
- Swift 5.0
CocoaPods
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '11.0'
use_frameworks!
target '<Your Target Name>' do
pod 'Seek', '4.0.0'
end
如何使用
要使用 Seek 对视图进行动画,请创建一个 Seek 实例,并提供要动画化的视图和属性。
在这个示例中,Seek 将会动画化视图的透明度以及平移、缩放和旋转。
let seek = Seek(
view: myViewToAnimate,
seekProperties: [
.alpha(seekFloat: SeekFloat(
fromValue: 0.5,
toValue: 1
)),
.transform(seekTransform: SeekTransform(
fromValue: SeekTransform.getTransform(x: 0, y: 0, scaleX: 1, scaleY: 1, rotationDegrees: 0),
toValue: SeekTransform.getTransform(x: 100, y: 100, scaleX: 1.4, scaleY: 1.4, rotationDegrees: 30)
))
])
您还可以创建一个 Seek 来动画化约束。
let seek = Seek(
view: myViewToAnimate,
constraint: myViewConstraintToAnimate,
constraintLayoutView: viewToCallLayoutIfNeededOn,
seekProperties: [
.constraints(seekFloat: SeekFloat(
fromValue: 0,
toValue: view.bounds.size.width - tealBlock.frame.size.width
)),
.transform(seekTransform: SeekTransform(
fromValue: SeekTransform.getTransform(x: 0, y: 0, scaleX: 1, scaleY: 1, rotationDegrees: 0),
toValue: SeekTransform.getTransform(x: 0, y: 0, scaleX: 2, scaleY: 2, rotationDegrees: 50)
))
])