Swift5.0 -UIView 动画

Swift-UIView动画

UIView动画可以设置的动画属性有:

1、大小变化(frame)

2、拉伸变化(bounds)

3、中心位置(center)

4、旋转(transform)

5、透明度(alpha)

6、背景颜色(backgroundColor)

7、拉伸内容(contentStretch)

其中通过transform也可以实现不同的动画效果,例如:平移、缩放、旋转、翻转

简单动画

//最简单的动画UIView.animate(withDuration:2){self.view.backgroundColor=UIColor.yellowself.textView.alpha=0self.textView.center.y+=200}

transform

与transform结合使用,实现不同的效果

UIView.animate(withDuration:2){self.textView.backgroundColor=UIColor.yellowself.textView.transform=CGAffineTransform.identity.translatedBy(x:-100,y:0)//平移.rotated(by:CGFloat(Double.pi/4))//旋转.scaledBy(x:0.5,y:0.5)//缩放}

options

UIView 动画比较完整的版本并不是上面那么简短,还有很多其他的参数可以配置。

UIView.animate(withDuration:,delay:<#T##TimeInterval#>,options:<#T##UIView.AnimationOptions#>,animations:<#T##()-> Void#>,completion:<#T##((Bool)-> Void)?##((Bool)-> Void)?##(Bool)-> Void#>)

参数:

withDuration:动画的持续时间

delay:动画开始之前的延时,默认是无延时。

options:一个附加选项,UIViewAnimationOptions 可以指定多个

animations:执行动画的闭包

completion:动画完成后执行的闭包,可以为nil,可以在这里链接下一个动画。

主要的options (UIViewAnimationOptions) :

动画执行对应的曲线(缓冲)

.curveEaseIn : 在动画开始时加速

.curveEaseOut : 在动画结束时减速

.curveEaseInOut : 相当于[.curveEaseIn, .curveEaseOut]的组合,在开始加速和在结束动画时减速

.curveLinear :让动画保持匀速

动画重复(Repeating)

.autoreverse:往返动画,从开始执行到结束后,又从结束返回开始

.repeat: 让动画一直重复执行

弹性动画(Spring animations)

UIView.animate(withDuration:<#T##TimeInterval#>,delay:<#T##TimeInterval#>,usingSpringWithDamping:<#T##CGFloat#>,initialSpringVelocity:<#T##CGFloat#>,options:<#T##UIView.AnimationOptions#>,animations:<#T##()-> Void#>,completion:<#T##((Bool)-> Void)?##((Bool)-> Void)?##(Bool)-> Void#>)

usingSpringWithDamping: 设置弹性动画的阻尼(范围:0.0~1.0),越接近0.0弹性越大,反之则越小。

initialSpringVelocity: 表示一个初始速度,动画执行快慢由他和duration共同决定。这个需要根据实际情况多调试。

Transitions 过渡动画

过度动画强调的是view改变内容。一般有两个方法:

UIView.transition(from:<#T##UIView#>,to:<#T##UIView#>,duration:<#T##TimeInterval#>,options:<#T##UIView.AnimationOptions#>,completion:<#T##((Bool)-> Void)?##((Bool)-> Void)?##(Bool)-> Void#>)UIView.transition(with:<#T##UIView#>,duration:<#T##TimeInterval#>,options:<#T##UIView.AnimationOptions#>,animations:<#T##(()-> Void)?##(()-> Void)?##()-> Void#>,completion:<#T##((Bool)-> Void)?##((Bool)-> Void)?##(Bool)-> Void#>)

options类型:

.transitionFlipFromLeft: // 从左边翻转

.transitionFlipFromRight: // 从右边翻转

.transitionFlipFromTop: // 从底部翻转

.transitionFlipFromBottom: // 从底部翻转

.transitionCurlUp: // 卷上去

.transitionCurlDown: // 卷下来

.transitionCrossDissolve: // 交叉溶解

你可能感兴趣的:(Swift5.0 -UIView 动画)