churabou / iOS-develop-blog

0 stars 0 forks source link

[未解決] imageViewが回転しない #33

Open churabou opened 6 years ago

churabou commented 6 years ago

この記事見てちょっと試して見たら本当に回転しなかった。

https://qiita.com/MilanistaDev/items/9f5a68398d51926aa25b


    let red = UIView()

    override func viewDidLoad() {

        view.backgroundColor = .white
        red.backgroundColor = .red
        red.frame.size = CGSize.init(width: 100, height: 100)
        red.center = view.center
        view.addSubview(red)
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

        let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation")
        rotateAnimation.fromValue = 0.0
        rotateAnimation.toValue = CGFloat(.pi * 2.0)
        rotateAnimation.duration = 0.5
        red.layer.add(rotateAnimation, forKey: nil)

//        UIView.animate(withDuration: 0.5) {
//            self.red.transform = self.red.transform.rotated(by: 270 * CGFloat.pi / 180)
//        }
    }

UIView.animateで指定すると・・近い方に回転するので360度のアニメーションができないらしい。

例えば270度回転すれば時計回りに270回転せず反時計回りに90度回転している模様。

layerにアニメーションつければ普通に回転したけど、なんでだろう。