我有一个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事件。因此,尽管滚动视图及其内容在视觉上看起来缩小了,但从技术上讲它们并非如此。
我将如何做到这一点?
谢谢!
答案 0 :(得分:2)
图层动画的行为与您描述完全相同(动画仅更改外观,而不是基础几何体。)
尝试使用UIView块动画并更改滚动视图的变换而不是图层的变换。
编辑:
喔。对不起,我以为这是iOS。我想我应该注意到你说它是一个NSView,而不是UIView。我最近在iOS上完成了大部分工作,而我的OSX经验主要来自Core Animation之前的日子。
我认为答案是获取视图的动画代理并设置更改,但我只在Mac OS中用动画代理做了一些学习练习,所以我不得不做一些挖掘来查找细节。