Swift - 通过设置视图的transform属性实现动画

设置视图对象的transform属性,可以实现各种动画效果。

1、移动

指在同一平面内,将控件按照某个直线方向平移一定的距离。

//每次都从当前位置平移
self.imageView.transform = self.imageView.transform.translatedBy(x: -2.1, y: -2.1)
//每次都从最开始的位置计算平移
self.imageView.transform = CGAffineTransform(translationX: 2.3, y: 2.3)

2、旋转

//连续旋转
UIView.beginAnimations(nil, context: nil)
UIView.setAnimationDuration(3.0) //设置动画时间
self.imageView.transform = self.imageView.transform.rotated(by: CGFloat(-Double.pi / 2))
UIView.commitAnimations()

UIView.animate(withDuration: 3.0) {
  self.imageView.transform = self.imageView.transform.rotated(by: CGFloat(-Double.pi / 2))
}
         
//独立旋转,以初始位置旋转
self.imageView.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi / 4))

3、缩放

//连续缩放
UIView.beginAnimations(nil, context: nil)
UIView.setAnimationDuration(3.0) //设置动画时间
self.imageView.transform = self.imageView.transform.scaledBy(x: 1.5 ,y: 1.5)
UIView.commitAnimations()

//独立缩放,以初始位置缩放
self.imageView.transform = self.imageView.transform.scaledBy(x: 1.5 ,y: 1.5)

4、反转

//返回初始状态
self.imageView.transform = .identity
 
//连续反转
UIView.beginAnimations(nil, context: nil)
UIView.setAnimationDuration(3.0) //设置动画时间
self.imageView.transform = self.imageView.transform.concatenating(self.imageView.transform.inverted())
UIView.commitAnimations()
 
//独立反转,以初始位置反转
self.imageView.transform = self.imageView.transform.inverted()

原文出自:www.hangge.com

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。