设置视图对象的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
网友评论