4

我有一个想要缩小 50% 的 NSScrollView。我使用以下代码执行此操作:

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 事件。因此,尽管滚动视图及其内容在视觉上看起来是按比例缩小的,但从技术上讲并非如此。

我该怎么做呢?

谢谢!

4

1 回答 1

2

图层动画的行为与您描述的完全一样(动画只会改变外观,不会改变底层几何体。)

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

编辑:

哦。抱歉,我以为这是 iOS。我想我应该注意到你说它是 NSView,而不是 UIView。这些天我的大部分工作都是在 iOS 上完成的,而我的 OSX 体验主要来自 Core Animation 之前。

我认为答案是获取视图的动画代理并对其进行更改,但我只在 Mac OS 中使用动画代理进行了一些学习练习,因此我必须进行一些挖掘以查找细节。

于 2013-02-05T00:55:17.233 回答