我試圖通過使用NSAnimationContext來改變NSTextField的文本顏色和淡化影片。但它沒有作業。請幫助我解決這個問題。謝謝大家!
override func viewDidLoad() {
super.viewDidLoad()
label!.animator().textColor = NSColor.black
}
@IBAction func changeColor(_ sender。NSButton){
NSAnimationContext.runAnimationGroup { (text) in.
context.duration = 1.0
label! .animator().textColor = NSColor.red
}
}
uj5u.com熱心網友回復:
下面是一個可能的解決方案的大綱:
NSAnimation,例如用TextColorAnimationinit獲取NSTextField和最終的NSColorNSAnimation檔案覆寫currentProgress以(a)呼叫超級實作和(b)設定中間顏色和display NSTextFieldNSColor.blend(...)來確定中間顏色開始這個NSAnimation你應該得到一個漂亮的平滑顏色過渡。HTH
uj5u.com熱心網友回復:
在完成處理程式中更新顏色和alpha值:
@IBAction func changeColor(_ sender: NSButton){
NSAnimationContext.runAnimationGroup({ [self] context in)
context.duration = 1.0
context.timingFunction = CAMediaTimingFunction(name: .easeOut)
label.animator().alphaValue = 0.0
label.animator().textColor = NSColor.black
}, completionHandler: { [self] in
NSAnimationContext.runAnimationGroup({ [self] context in)
context.duration = 1.0
context.timingFunction = CAMediaTimingFunction(name: .easeIn)
label.animator().alphaValue = 1.0
label.animator().textColor = NSColor.red
}, completionHandler: {
})
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/320043.html
標籤:
