2017-08-12 9 views
0

私はSwift 4でアプリケーションを作成しています。メインスクリーンにはロゴがあり、ボタンを押します。しかし、私はそれを回転させるべきロゴをクリックするとき実装しようとしますが、何らかの理由で回転していません。何が間違っているのか分かりますか?Swift 3/4でボタンをクリックして画像を回転させる方法は?

はここ

class MainViewController: UIViewController { 

    @IBOutlet weak var logoClicked: UIButton! 
    override func viewDidLoad() { 
     super.viewDidLoad() 


    } 

    @IBAction func logoClickTapped(_ sender: Any) { 

     rotateAnyView(view: logoClicked, fromValue: 0, toValue: Float(2.0 * M_PI), duration: 1) 



    } 

    func rotateAnyView(view: UIView, fromValue: Double, toValue: Float, duration: Double = 1) { 
    let animation = CABasicAnimation(keyPath: "transform.rotation") 
    animation.duration = duration 
    animation.fromValue = fromValue 
    animation.toValue = toValue 
    view.layer.add(animation, forKey: nil) 
    } 

} 
+0

関連:https://stackoverflow.com/questions/37959523/swift-rotate-gesture-and-rotation-increments-of -90度/ –

+0

@matt画像をタップすると何も起こりません –

+0

logoClickedと動作logoClickTapped のコンセントがストーリーボードに正しく接続されていることを確認してください – 3stud1ant3

答えて

0

あなたのコードは正常に動作します私のコードです。私はあなたがボタンにIBActionを接続するのを忘れたと思います。 logoClickTapped関数にブレークポイントを設定し、呼び出されていることを確認してください。

0

keyPathを修正しました。例えばz回転。 '

func rotateAnyView(view: UIView, fromValue: Double, toValue: Float, duration: Double = 1) { 
    let animation = CABasicAnimation(keyPath: "transform.rotation.z") 
    animation.duration = duration 
    animation.fromValue = fromValue 
    animation.toValue = toValue 
    view.layer.add(animation, forKey: nil) 
} 
0

ImageViewが90度回転したい場合は、

ImageView.transform = ImageView.transform.rotated(CGFloat.pi/2)

関連する問題