ボタンがクリックされるたびに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度など、既に回転している場合があります)、現在の変換に追加する必要があります。私が与えたコードの2行目はそれを行います。
スウィフト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
}