Ich versuche, meine NSWindow zu animieren, nachdem ich eine bestimmte Schaltfläche klicken, so schrieb ich eine Funktion:Cocoa - Animieren 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")
}
}
Es scheint für mich in Ordnung, aber es ist nicht - das Fenster nicht verblassen in. Es erscheint einfach nach was auch immer ich in das Dauerfeld eingetragen habe (also akzeptiert es wahrscheinlich keinen alphaValue unter 1.0).
Ist es möglich, AlphaValue in OSX-Anwendung zu animieren? Ich habe dieses Forum gesucht und ich habe einige andere Möglichkeiten gefunden, einschließlich NSAnimationContext, aber es hat nicht für mich funktioniert.
Funktioniert wie Magie. Ich habe versucht, dieses zu verwenden und hatte den gleichen Code, aber ich habe vergessen, ".animator()" nach NSWindow hinzuzufügen. Kleine Dinge sind wichtig. Danke vielmals! – Ancinek