每次单击按钮时,将UIButton旋转90度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每次单击按钮时,将UIButton旋转90度相关的知识,希望对你有一定的参考价值。

每次单击按钮时如何将UIButton旋转90度并跟踪每个旋转的位置/角度?

这是我到目前为止的代码,但它只旋转一次:

@IBAction func gameButton(sender: AnyObject) {
    UIView.animateWithDuration(0.05, animations: ({
        self.gameButtonLabel.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2))
    }))
}
答案
self.gameButtonLabel.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2))

应该改为

// Swift 3 - Rotate the current transform by 90 degrees.
self.gameButtonLabel.transform = self.gameButtonLabel.transform.rotated(by: CGFloat(M_PI_2))

// OR

// Swift 2.2+ - Pass the current transform into the method so it will rotate it an extra 90 degrees.
self.gameButtonLabel.transform = CGAffineTransformRotate(self.gameButtonLabel.transform, CGFloat(M_PI_2))

使用CGAffineTransformMake...,您可以创建一个全新的变换并覆盖按钮上已有的任何变换。由于您希望将90度附加到已存在的变换(可能已经旋转0度,90度等),您需要添加到当前变换。我给出的第二行代码就是这样做的。

另一答案

斯威夫特4:

@IBOutlet weak var expandButton: UIButton!

var sectionIsExpanded: Bool = true {
    didSet {
        UIView.animate(withDuration: 0.25) {
            if self.sectionIsExpanded {
                self.expandButton.transform = CGAffineTransform.identity
            } else {
                self.expandButton.transform = CGAffineTransform(rotationAngle: -CGFloat.pi / 2.0)
            }
        }
    }
}

@IBAction func expandButtonTapped(_ sender: UIButton) {
    sectionIsExpanded = !sectionIsExpanded
}

以上是关于每次单击按钮时,将UIButton旋转90度的主要内容,如果未能解决你的问题,请参考以下文章

jquery css在每次按下按钮时连续旋转90度

在 UIButton 中,setImage 和 setBackgroudnImage 的内容 id 不同,它旋转了 90 度

将物体旋转 90 度?

单击div,使其顺时针旋转180°

旋转 UIBarButtonItem Swift

尝试按下按钮将精灵的 zRotation 增加 1 度时旋转不正确