macos - NSView 的动画

标签 macos animation core-animation nsview

我一直在为 iOS 制作应用程序,最近开始为 Mac OS X 制作应用程序。我正在尝试在 NSView 上制作一些动画。

我想做的是弹跳 NSView 的比例,使其缩小到 70%,然后弹回 100%。现在我可以做缩放/调整大小部分,但我现在不能做动画部分。

对于 iOS,我会在 UIView 上使用以下内容:

+ (void)animateWithDuration:(NSTimeInterval)duration
                 animations:(void (^)(void))animations
                 completion:(void (^)(BOOL finished))completion

使用它意味着当上一个动画完成时我可以开始新的动画。我一直在为 Mac OS X 寻找类似的功能。我发现了以下内容:

[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:2.0];
// Set end state of objects to animate
[NSAnimationContext endGrouping];

这类似于我在 iOS 4 之前为对象设置动画的方式。但是后来引入了动画 block (如在顶部显示),从那时起我就一直在使用它们。所以我的问题是,是否有我错过的 Mac OS X 动画 block ?或者有其他方法吗?

最佳答案

如果您使用的是 Mac OS X 10.7,您可能会发现使用基于 block 的 NSAnimationContext API 更自然:

+ (void)runAnimationGroup:(void (^)(NSAnimationContext *context))changes
        completionHandler:(void (^)(void))completionHandler

关于macos - NSView 的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11275309/

相关文章:

swift - NSTextView 不支持 Cocoa 应用中的重做和撤消

javascript - 为什么在主进程和渲染进程中调用的 window.maximize() 与 macos 上的动画不同?

css - 如何将 360 滚动到 svg 组的中心?

ios - CALayer 委托(delegate)导致僵尸崩溃——为什么?

ios - Swift 2.0 最低系统版本要求(部署目标)

macos - 在 macOS High Sierra 上安装 flutter 时遇到问题

ios - 核心基础vs基础或核心基础+基础

android - overridePendingTransition() 不工作

iphone - 在 iOS 上,自定义 View 不会设置动画?

ios - 如何在另一个 View iOS 上垂直翻转 View ?