[英]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.