ios - 在第二个动画块中,动画选项不受支持/错误

  显示原文与译文双语对照的内容
0 0

使用简单的CGAffineTransformMakeScale 来制作一个脉冲标签,在尝试使用减缓选项时,会出现错误,延迟等。 没有这个我抽筋的动画我得到缓解的增加并没有返回到原始大小


 [UIView animateWithDuration:1.0f delay:0 options: UIViewAnimationCurveEaseInOut|UIViewAnimationOptionAllowUserInteraction animations: ^{

[UIView setAnimationRepeatCount:10];

 self.transform = CGAffineTransformMakeScale(1.1,1.1);

} completion:^(BOOL finished) {


 [UIView animateWithDuration:1.0 animations:^{//<<<"No known method for selector" error here if I add options

 self.transform = CGAffineTransformMakeScale(1.0,1.0);

 }];
}];

时间: 原作者:

0 0

如果你想让它动画十次,然后停止,你可以使用 UIViewAnimationOptionRepeatUIViewAnimationOptionAutoreverse 选项。 这样,在重复之前,它会优雅地回到原来的状态。 它还可以避免你在最后对它的进行动画处理:


[UIView animateWithDuration:1.0
 delay:0.0
 options:UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse | UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionAllowUserInteraction
 animations:^{
 [UIView setAnimationRepeatCount:10];
 self.viewToResize.transform = CGAffineTransformMakeScale(1.1, 1.1);
 }
 completion:^(BOOL finished) {
 self.viewToResize.transform = CGAffineTransformIdentity;
 }];

原作者:
0 0

不要像这样连锁动画。 使用低层 CoreAnimation API指定带有关键帧的动画。 下面是一个模拟UIAlertView在屏幕上出现方式的示例:


CAKeyframeAnimation* bounceAnim = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"];
bounceAnim.duration = 0.4f;
bounceAnim.values = @[ @0.01f, @1.1f, @0.9f, @1.f ];
bounceAnim.keyTimes = @[ @0.f, @0.5f, @0.75f, @1.f ];
bounceAnim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
bounceAnim.fillMode = kCAFillModeBoth;
bounceAnim.removedOnCompletion = YES;

[dialog.layer addAnimation:bounceAnim forKey:@"bounce"];

你将想修改它,使它循环,也可以调整值和时间到你喜欢的。 查看 CAKeyframeAnimation 文档。

...