Swift 按钮点击图片旋转动画

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
    }