iOS

Swift-UIView动画

2021-02-26  本文已影响0人  懒床小番茄

iOS 中实现动画有好几种方式,UIView 是最简单的一种。UIView 层面的动画只是对 layer 层部分属性的封装,我们可以直接操作其中的属性实现动画效果。
UIView动画可以设置的动画属性有:
1、大小变化(frame)
2、拉伸变化(bounds)
3、中心位置(center)
4、旋转(transform)
5、透明度(alpha)
6、背景颜色(backgroundColor)
7、拉伸内容(contentStretch)
其中通过transform也可以实现不同的动画效果,例如:平移、缩放、旋转、翻转

简单动画

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

transform

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

UIView.animate(withDuration: 2) {
    self.textView.backgroundColor = UIColor.yellow
    self.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: <TimeInterval#>, delay: <#T##TimeInterval#>, options: <#T##UIView.AnimationOptions#>, animations: <#T##() -> Void#>, completion: <#T##((Bool) -> Void)?##((Bool) -> Void)?##(Bool) -> Void#>)

参数:

主要的options (UIViewAnimationOptions) :

弹性动画(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#>)

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类型:

上一篇 下一篇

猜你喜欢

热点阅读