2017-02-09 28 views
3

У меня есть простое приложение swift macOS (с использованием Xcode 8.2.1), которое содержит один NSButton. Когда я нажимаю кнопку, я бы хотел, чтобы она исчезла в течение определенного периода времени. Я думал, что могу использовать NSAnimationContext, но независимо от того, какое значение я установил, длительность кнопки context почти исчезает. Разве это не правильный способ сделать это?Fade out NSButton using NSAnimationContext

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

Я неправильно понял, как значения аниматора работали во время анимации. Правильный способ установить это:

@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 
    }) 
}