繁体   English   中英

如何在Swift 3/4中通过单击按钮使图像旋转?

[英]How to make image rotate with a button click in Swift 3/4?

所以我要在Swift 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)
  }

} 

您的代码工作正常。 我猜您忘记了将IBAction连接到按钮。 在您的logoClickTapped函数中设置一个断点,并确保正在调用它。

修复您的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)
} 

如果ImageView是您想要旋转90度的那个。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM