之前我在这里看过类似的问题,但它们只涉及简单的按钮,而不是条形按钮项目。请记住,条形按钮项和常规按钮具有不同的属性,因此其他帖子的答案在这种情况下不起作用。
有没有办法,在swift中,我可以让我的刷新条按钮项目旋转一次360度(以显示某个动作发生)?
答案 0 :(得分:1)
为了动画UIBarButtonItem
,我们需要为其指定customView
并为其设置动画。
我在下面所做的是创建一个普通的UIButton
,并且我已将其图像分配给名为"刷新"的刷新图标。 。接下来,我将UIBarButtonItem
customView
设置为我的新按钮。既然barButton
有一个customView
,我可以调用我的rotateBarButton()
方法来执行动画代码。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var barButton: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton(frame: CGRectMake(0, 0, 40, 40)) // Create new button & set its frame
button.setImage(UIImage(named: "refresh"), forState: .Normal) // Assign an image
barButton.customView = button // Set as barButton's customView
}
func rotateBarButton() {
// Gets you half way there //
UIView.animateWithDuration(0.05, delay: 0.0, options: UIViewAnimationOptions.CurveEaseIn, animations: {
self.barButton.customView?.transform = CGAffineTransformMakeRotation(CGFloat(M_PI))
}, completion: nil)
// Rotates all the way around //
UIView.animateWithDuration(0.5, delay: 0.5, options: UIViewAnimationOptions.CurveEaseIn, animations: {
self.barButton.customView?.transform = CGAffineTransformMakeRotation(CGFloat(M_PI * 2))
}, completion: nil)
}
}