1
我試圖動畫我NSWindow我點擊一個特定的按鈕後,所以我寫了一個函數:可可 - 動畫NSWindow
func fadeIn(window: NSWindow, duration: NSTimeInterval) {
var alpha = 0.0 as CGFloat
window.alphaValue = alpha
window.makeKeyAndOrderFront(nil)
let numberOfLoops = Int(duration/0.02)
let alphaChangeInLoop = (CGFloat(1.0)/CGFloat(numberOfLoops))
var loopRun = 0
for _ in 0...numberOfLoops {
loopRun += 1
alpha += alphaChangeInLoop
window.alphaValue = alpha
NSThread.sleepForTimeInterval(0.020)
}
print("Loop was run \(loopRun) times. Ending alpha: \(alpha)")
if alpha != 1.0 {
alpha = 1.0
window.alphaValue = 1.0
print("Alpha set to 1.0")
}
}
這似乎爲我好,但它不是 - 窗口不褪色in。它出現在無論我放在持續時間字段(因此它可能不接受任何低於1.0的alphaValue)。
是否可以在OSX應用程序中爲alphaValue設置動畫效果?我一直在尋找這個論壇,我發現了一些其他的方式,包括NSAnimationContext,但它並沒有爲我工作。
像魔術一樣工作。我嘗試使用這一個,並有相同的代碼,但我忘了在NSWindow之後添加「.animator()」。小事很重要。非常感謝! – Ancinek