Затухание 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
  })
}
Другие вопросы по тегам