Swift 按钮点击图片旋转动画
需求:按钮图片为向下箭头,点击完后,动画过渡为向上
@objc func buttonAction(sender: UIButton) {
//创建动画
let anim = CABasicAnimation()
//一个重要的设置:就是keyPath
//旋转动画一定要设置为transform.rotation,不能写错
anim.keyPath = "transform.rotation"
//目标值
if sender.isSelected {
anim.toValue = 0
}else {
anim.toValue = Double.pi
}
//动画时长
anim.duration = 0.3
//以下两句可以设置动画结束时 layer停在toValue这里
anim.isRemovedOnCompletion = false
anim.fillMode = kCAFillModeForwards
//添加动画到layer层上
sender.imageView?.layer.add(anim, forKey: nil)
//切换按钮的选中状态
sender.isSelected = !sender.isSelected
}