我有一个简单的Swift macOS应用程序(使用Xcode 8.2.1),它包含一个NSButton。当我点击按钮时,我希望它在指定时间内淡出。我以为我可以使用NSAnimationContext
,但无论我设置context
持续时间的值是什么,按钮几乎立即淡出。这不是正确的方法吗?
class ViewController: NSViewController {
@IBOutlet weak var basicButton: NSButton!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func basicButtonClicked(_ sender: NSButton) {
NSAnimationContext.runAnimationGroup({ (context) in
context.duration = 10.0
self.basicButton.animator().alphaValue = 1
}) {
self.basicButton.animator().alphaValue = 0
}
}
}
答案 0 :(得分:3)
我误解了动画师在动画过程中的价值。设置它的正确方法是:
@IBAction func basicButtonClicked(_ sender: NSButton) {
NSAnimationContext.runAnimationGroup({ (context) in
context.duration = 10.0
// Use the value you want to animate to (NOT the starting value)
self.basicButton.animator().alphaValue = 0
})
}