如何在UIScrollView上为zoomScale设置动画

时间:2013-06-11 21:02:26

标签: ios uiscrollview cabasicanimation nsvalue

我需要在UIScrollView上将zoomScale设置为1,但我需要将其设置为动画。我认为我可以使用CABasicAnimation,但NSValue似乎没有“valueForFloat”或“valueForNSNumber”,因此我不确定将什么用于CABasicAnimation的animation.fromValue和animation.toValue。有没有更好的方法来解决这个问题?

编辑:我需要添加什么才能使用?

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"zoomScale"];
        animation.duration = 2.3;
        animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];        
        animation.fromValue = [NSNumber numberWithFloat:myScrollview.zoomScale];
        animation.toValue = [NSNumber numberWithFloat:1.0];

        [myScrollview.layer addAnimation:animation forKey:@"zoomScale"];

1 个答案:

答案 0 :(得分:13)

您不需要诉诸CAAnimation这个简单的事情,只需使用-[UIScrollView setZoomScale:animated:]传递YES作为第二个参数。

无论如何,如果你想修改动画的某些方面,你可以使用“UIView动画”,因为zoomScale不是CAAnimation可动画的属性。

您是否尝试过以下内容?

[UIView animateWithDuration:2.0
                      delay:0
                    options:UIViewAnimationOptionBeginFromCurrentState
                 animations:^{ [myScrollView setZoomScale:1.0f animated:NO]; }
                 completion:nil];