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: // 交叉溶解