Mar*_*ski 8 macos cocoa caanimation nsanimationcontext swift
理想情况下我需要类似的东西UIView.animateWithDuration,但我知道这不是macOS上可用的API.操作NSView的实际帧并为更改设置动画的最佳方法是什么?
我尝试过CABasicAnimation,但是这是在CALayer而不是视图本身上执行的.
我需要的是为实际的视图框架设置动画......(或者这可能是一种不好的做法,还有另一种选择吗?)
因此,经过一番挖掘,我发现了NSAnimationContext.然而,这似乎只是在两个状态之间插入/淡化,这不是我想要的感觉.
这是我的代码的一小部分示例:
override func mouseDown(with event: NSEvent) {
let newSize = NSMakeRect(self.frame.origin.x,
self.frame.origin.y - 100,
self.frame.width, self.frame.height + 100)
NSAnimationContext.runAnimationGroup({ (context) -> Void in
context.duration = 0.5
self.animator().frame = newSize
}, completionHandler: {
Swift.print("completed")
})
}
Run Code Online (Sandbox Code Playgroud)
小智 1
大约一半的地方有一个平滑的 NSView 缩放动画,它似乎符合您正在寻找的内容。由于您正在缩放并保持视图旋转,因此它也可以解决这个问题。
https://www.advancedswift.com/nsview-animations-guide/#smooth-nsview-scale-animations
| 归档时间: |
|
| 查看次数: |
1229 次 |
| 最近记录: |