2017-02-09 5 views
3

私は単一のNSButtonを含むシンプルなSwift macOSアプリケーション(Xcode 8.2.1を使用しています)を持っています。ボタンをクリックすると、指定した期間にわたってフェードアウトします。私はNSAnimationContextを使うことができると思ったが、何の値を設定しても、ボタンはほとんど直ちに消える。これは正しい方法ではありませんか?NSAnimationContextを使用してNSButtonをフェードアウト

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 
    }) 
} 
関連する問題