可可 – 使用核心动画缩放

我有一个NSScrollView,我希望缩小50%.我使用以下代码执行此操作:

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];

animation.fromValue = [NSNumber numberWithFloat:1.00];
animation.toValue = [NSNumber numberWithFloat:0.50];
[animation setDuration:0.20f];

[animation setFillMode:kCAFillModeForwards];
[animation setRemovedOnCompletion:NO];

[self.scrollView.layer addAnimation:animation forKey:@"drag"];

这有效,但滚动视图的文档视图在我缩小缩小视图外部时会收到mousedown事件.因此,尽管滚动视图及其内容在视觉上看起来缩小了,但它们在技术上并非如此.

我该怎么做呢?

谢谢!

解决方法

图层动画的行为与您描述的完全相同(动画仅更改外观,而不是基础几何体.)

尝试使用UIView块动画并更改滚动视图的变换而不是图层的变换.

编辑:

哦.对不起,我以为这是iOS.我想我应该注意到你说它是一个NSView,而不是UIView.我最近在iOS上完成了大部分工作,而我的OSX经验主要来自Core Animation之前的日子.

我认为答案是获取视图的动画代理并设置更改,但我只在Mac OS中使用动画代理进行了一些学习练习,所以我不得不做一些挖掘来查找具体细节.

相关文章

我正在用TitaniumDeveloper编写一个应用程序,它允许我使用Ja...
我的问题是当我尝试从UIWebView中调用我的AngularJS应用程序...
我想获取在我的Mac上运行的所有前台应用程序的应用程序图标....
我是一名PHP开发人员,我使用MVC模式和面向对象的代码.我真的...
OSX中的SetTimer在Windows中是否有任何等效功能?我正在使用...
我不确定引擎盖下到底发生了什么,但这是我的设置,示例代码和...