Swift UIButtonを回転アニメーション、反時計回り

ボタン(UIView系であればどれでも)を反時計回りで回転アニメーション

開始状態

終了状態

コード

これだと時計回りになる

UIView.animate(withDuration: 0.5, animations: {
    self.menuIcon.transform = CGAffineTransform(rotationAngle: CGFloat.pi/180*180)
    },
completion: { (_) in
    self.menuIcon.transform = CGAffineTransform(rotationAngle: CGFloat.pi/180*0)
    self.menuIcon.setImage(UIImage(systemName: "chevron.up.circle"), for: .normal)
})

反時計回りにするには

距離の近い方向で回る為、1度先に傾ける
距離が同じだと時計回りになる

self.menuIcon.transform = CGAffineTransform(rotationAngle: CGFloat.pi/180*359)
UIView.animate(withDuration: 0.5, animations: {
    self.menuIcon.transform = CGAffineTransform(rotationAngle: CGFloat.pi/180*180)
    },
completion: { (_) in
    self.menuIcon.transform = CGAffineTransform(rotationAngle: CGFloat.pi/180*0)
    self.menuIcon.setImage(UIImage(systemName: "chevron.up.circle"), for: .normal)
})

Swift

Posted by shi-n