Swift 视图控制器分段的NSWindow过渡动画
我一直在想如何让NSWindow使用Swift 3执行过渡动画。我在Objective-C中找到了一些示例,但我还无法梳理出相关的细节,并将其翻译成目标语言/更新的SDK,并将其应用于正确的对象。这一款非常酷,但它已经有8年历史了:--我想现在在macOS Sierra用Swift有更好的方法来实现Swift 视图控制器分段的NSWindow过渡动画,swift,swift3,nswindow,macos-sierra,nsviewcontroller,Swift,Swift3,Nswindow,Macos Sierra,Nsviewcontroller,我一直在想如何让NSWindow使用Swift 3执行过渡动画。我在Objective-C中找到了一些示例,但我还无法梳理出相关的细节,并将其翻译成目标语言/更新的SDK,并将其应用于正确的对象。这一款非常酷,但它已经有8年历史了:--我想现在在macOS Sierra用Swift有更好的方法来实现CGSCube效果 以下是我目前掌握的情况: class ViewController: NSViewController { func doAnimation() { if
CGSCube
效果
以下是我目前掌握的情况:
class ViewController: NSViewController {
func doAnimation() {
if let layer = view .layer {
layer.backgroundColor = CGColor.black
let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation")
rotateAnimation.fromValue = 0.0
rotateAnimation.toValue = CGFloat(CGFloat.pi * 2.0)
rotateAnimation.duration = 10.0
layer.add(rotateAnimation, forKey: nil)
}
}
override func viewWillAppear() {
if let window = self.view.window {
window.styleMask = NSWindowStyleMask.borderless
window.backingType = NSBackingStoreType.buffered
window.backgroundColor = NSColor.clear
window.isOpaque = false
window.hasShadow = false
}
}
override func viewDidLoad() {
super.viewDidLoad()
doAnimation()
}
}
这根本不起作用。我在窗口上获得白色背景,而不是透明背景,并且我的视图在框架上滚动,而不是窗口框架本身被设置动画
理想情况下,我想做一些更高级的事情,比如这些3d转换-&但我不太确定如何在没有UIKit的情况下将示例从iOS SDK转换到macOS SDK。(令人烦恼的是,我记得几年前在ObjC中完成了这个项目,但项目在格式/新计算机之间的某个地方丢失了。)
在视图控制器之间切换时,如何将转换应用于NSWindow本身?任何关于增加3d效果的建议都将不胜感激。我希望有个椰子荚能让我走到一半