我需要在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"];
答案 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];