Swift5.0 -UIView 动画

程序员 2024-9-5 20:49:49 15 0 来自 中国
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: // 交织溶解
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 18:23, Processed in 0.150883 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表