Затухание NSButton с помощью NSAnimationContext
У меня есть простое приложение MacOS Swift (с использованием 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
}
}
}
1 ответ
Я неправильно понял, как работают значения аниматора во время анимации. Правильный способ настроить это:
@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
})
}