我正在建設示例約FloatingButton。旋轉圖像-45度
但我有一些旋轉圖像的麻煩。我希望它旋轉這樣的鏈接
https://github.com/yoavlt/LiquidFloatingActionButton
但我的按鈕是:
正如你可以看到,當我點擊了第一次,它運行良好:d,它像x
那樣轉換,但是當我再次點擊時,我想讓它回到原始狀態,如+
,但效果不佳。
這裏是我的代碼:
import UIKit
class ViewController: UIViewController {
@IBOutlet var floatingButton: UIImageView!
var floatingButtonIsActive = false
override func viewDidLoad() {
super.viewDidLoad()
addShadowToFloatingButton()
let gesture = UITapGestureRecognizer(target: self, action: #selector(floatingButtonTapped(_:)))
floatingButton.addGestureRecognizer(gesture)
}
private func addShadowToFloatingButton() {
floatingButton.layer.shadowColor = UIColor.grayColor().CGColor
floatingButton.layer.shadowOffset = CGSize(width: -2, height: 2)
floatingButton.layer.shadowOpacity = 1
floatingButton.layer.shadowRadius = 1
}
func floatingButtonTapped(sender: UITapGestureRecognizer) {
if floatingButtonIsActive == false {
UIView.animateWithDuration(0.5, delay: 0.0, usingSpringWithDamping: 0.5, initialSpringVelocity: 5, options: .CurveEaseInOut, animations: {
self.floatingButton.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_4))
}, completion: { _ in
self.floatingButtonIsActive = true
})
} else {
UIView.animateWithDuration(0.5, delay: 0.0, usingSpringWithDamping: 0.5, initialSpringVelocity: 5, options: .CurveEaseInOut, animations: {
self.floatingButton.transform = CGAffineTransformMakeRotation(CGFloat(-M_PI_4))
}, completion: { _ in
self.floatingButtonIsActive = false
})
}
}
}
您可以再次旋轉到45度。它會產生同樣的效果。 self.floatingButton.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_4)) –
不,它不會像你說的那樣工作。 – Khuong