问题标签 [nsviewanimation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cocoa - 有什么理由使用 NSViewAnimation 而不是 CoreAnimation 技术?
我正在开发一个 Snow Leopard 应用程序,并且正在制作一些视图动画(交换它们),并且我已经看到了一些使用 NSViewAnimation 的旧示例。我想知道这些是否完全被核心动画淘汰了?
对我来说使用起来似乎相当简单
但我只是想知道我是否遗漏了一些东西,或者 NSViewAnimation 是否仍然相关(除了向后兼容性)。
objective-c - 使用推送动画查看交换
我想通过将旧视图推到一边以滑入新视图(kCATransitionPush 类型)来交换一个视图。要使用 CoreAnimation,我需要在我的视图中使用 CALayers。问题是通过 setWantsLayer 将支持层附加到我的窗口内容视图会扭曲视图中的所有内容。
我不确定这是否与我正在使用一个名为 MAAttachedWindow ( http://mattgemmell.com/source ) 的 NSWindow 子类的事实有关,它是一种 HUD 样式的透明弹出窗口,附加到屏幕上的另一个元素。
如果需要,我可以提供这种失真的屏幕截图。我通过 NSViewAnimation 获得了动画,但正如许多其他人所经历的那样,NSViewAnimation 非常慢。我宁愿使用 CoreAnimation 但这个问题阻止我使用它。
非常感谢任何见解
cocoa - 阻止 NSView 的实例接收鼠标事件
我在打开核心动画层的窗口中有一个 NSView。我不时使用此视图显示带有动画的图像。我需要整个视图作为后层,而不仅仅是图像。在这个我称之为 AnimationBaseView 的视图后面是用户与之交互的其他视图。
除了 AnimationBaseView 阻止其他视图获取 rightMouseDown 事件之外,一切都很好。
我尝试了以下方法:
- 返回 NO 到 AcceptFirstResponder 到 AnimationBaseView
- 根据需要隐藏和取消隐藏 AnimationBaseView,但会产生令人讨厌的闪烁。
谢谢你的帮助,何塞。
cocoa - 带有 CIFilter 的 CATransition 第一次不起作用,第二次起作用
我想为 NSView 添加 CATransition 动画。我有以下代码:
问题是:
我执行这段代码。
我
[[contentView animator] addSubview:mySubview];
第一次这样做,它不起作用。视图刚刚出现。CATransition
委托方法被调用,但finished
标志为 NO(假)。我删除视图
[mySubview removeFromSuperview];
并通过动画删除,finished
标志 = YES (true)。我重复第 2 步和第 3 步,它适用于动画。第 2 步现在告诉动画是
finished
(YES)。按预期工作。
怎么了?
objective-c - 使用 NSViewAnimation 和 NSAnimationEaseOut 奇怪的行为
在我的一个可以拖动的视图中,如果用户将它放在不合适的位置,它会简单地回到鼠标按下时记录的原始帧。这几天没有动画效果很好,但我决定引入动画:
这适用于 NSAnimationLinear 和默认的 NSAnimationEaseInOut,但我真正想要的只是减速感,我认为 NSAnimationEaseOut 应该这样做。出于某种原因,当我使用它时,视图会立即捕捉到它应该结束的帧,然后动画滑回光标放置它的位置(开始帧),然后重新捕捉到(应该是什么)结束帧.
所有其他模式(NSAnimationLinear、NSAnimationEaseIn、NSAnimationEaseInOut)似乎工作得很好。我是否误解了 NSAnimationEaseOut 的目的?
cocoa - 有没有办法让 NSAnimation 像在 iPhone 上一样“从当前状态开始”?
我想让视图在窗口调整大小时移动到不同的位置。我目前在接收 NSWindowDidResizeNotification 时使用 NSViewAnimation 执行此操作。
(“动画”是一个数组,其中包含我的视图的新矩形,就像 NSAnimation 想要的那样)当我调整窗口大小时,此代码被多次调用。因此,在调整大小时,此代码会被调用大约 20 次以调整大小。我现在有 20 个视图移动的动画。20 个不同的重叠。(看起来有很多不同的视图,但我认为动画之间的跳跃是一样的)
在 iPhone 上,只有视图在移动,我可以设置 [UIView setAnimationBeginsFromCurrentState:YES] 并且它会起作用。有没有办法在 OSX 上做到这一点?我可以在视图上创建一个 isAnimating 变量,但它只会移动到一个位置,并且在制作动画时会忽略快速调整大小。
我如何在 OSX 上执行此操作?谢谢
cocoa - NSViewAnimation - 太慢了
我对 Cocoa 编程很陌生。我有自定义视图(iBox),其中还有另一个类(iCircle)的 8 个自定义视图。我想制作动画来调整 iBox 的大小并将 8 个 iCircles 中的每一个移动到距 iBox 特定一侧一定距离的位置。
我用最简单的方法做了。A 创建了一个 NSViewAnimation 对象,其中包含 9 个 NSDictionaries,其中包含 8 个 iCircles 和 iBox 中的每一个的 NSViewAnimationTargetKey、NSViewAnimationStartFrameKey、NSViewAnimationEndFrameKey。
所以当我开始动画时,它播放得非常慢,就像幻灯片一样,但不是动画。它看起来像是在非常旧的 GPU 上运行的 3D 游戏。如果我只为 iBox 和 1 个 iCircle 设置动画,它会播放流畅。
所以我的问题是:你知道究竟是什么导致了这种行为吗?是说NSViewAnimation 对象中有大量的Dictionaries,还是说有大量的iCircles。也许它们应该是类似 NSViewCells 的东西。我在某处读到使用单元格比相同类型的单独视图更有效。
优化此类动画以使其高效且流畅运行的最佳方法是什么?
对于这个问题,我将不胜感激。
objective-c - 动画 NSView 帧,然后跳转到特定帧
我试图滑动一个网格NSView
,从另一个显示另一行NSView
。然后,一旦动画完成,第二个NSView
将消失,第一个将立即使用新数据移回其原始位置。
它的工作时间为 4/5 秒。我得到的唯一错误是第一个视图没有重置到原始位置;它停留是动画完成。
这是基本思想(我这里没有代码):
我在 Google 上搜索时遇到了麻烦,因为runAnimationGroup:completionHandler
它是 Lion 中的新手。
nsviewanimation - 使用 NSViewAnimation 连续动画 frameRotation
我正在尝试找出正确的方法来连续为支持图层的 NSView 的 frameRotation 设置动画。
特别是,我基本上是在尝试重新创建新的 Launchpad 在您单击并按住图标时的动画效果。事件处理不是问题,而是实际的重复动画。
到目前为止,我已经使用 NSTimer 使用视图的动画代理来为 frameRotation 设置动画。虽然这可行,但它似乎是资源密集型的,我确信 NSAnimation 可以用于此。
我只是想知道是否有人可以在这里指出我正确的方向。
仅讨论视图的框架矩形和 alpha 值。所以我不确定如何将它用于 frameRotation
亲切的问候,亚历克
cocoa - 带有 kCGDesktopWindowLevel 的 NSWindow 的 NSViewAnimation 闪烁
我有一个NSWindow
设置,kCGDesktopWindowLevel
所以它位于桌面图标后面的桌面上(如墙纸)。
我正在尝试使用NSViewAnimation
.
问题是动画闪烁很多。我追踪到了窗台。
如果我使用默认窗口级别,动画会按预期顺利运行。
任何建议可能是什么原因?在那个级别绘制窗口有什么不同吗?
编辑:
这可能是一个 RunLoop 问题吗?背景窗口不接收用户输入。但是,我的应用程序还有另一个可以接收输入的普通窗口。