animateWithDuration动画循环Animation

作者: coderBoy | 来源:发表于2016-11-23 16:23 被阅读2443次

老规矩先放一张美图吧。

43.jpg

iOS中使用简单动画循环其中有两种方式

1.使用animation中自带的AnimationRepeatCount ,可以通过设置这个值,使动画能循环运行多少次,如果要设置为一直无限循环,可以设置为MAXFLOAT,参考代码如下:
[UIView animateWithDuration:1.0f delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
    [UIView setAnimationRepeatCount:MAXFLOAT];
    _bottomConstraint.constant = 300;
    [self.view layoutIfNeeded];
} completion:^(BOOL finished) {
    _bottomConstraint.constant = 0;
    [self.view layoutIfNeeded];
}];

需要注意的地方为:
1.1动画代码如果想要在页面开始的时候就运行一定不要放到viewDidLoad中,一定要放到viewDidAppear或者viewWillAppear中,否则只显示动画的最终完成的效果
1.2动画代码中 [UIView setAnimationRepeatCount:MAXFLOAT]这一段代码一定要放到所有效果代码之前,否则动画无法循环


2.可以采用定时器的方法做动画循环参考代码如下:
  NSTimer *splashTimer = nil;
 splashTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(anmimationView) userInfo:nil repeats:YES];

然后在放上动画代码:

_bottomConstraint.constant = 300;
[self.view layoutIfNeeded];
[UIView animateWithDuration:1.0f animations:^{
    UIView.animationRepeatCount  = 9999;
    _bottomConstraint.constant =0;
    [self.view layoutIfNeeded];
}];

这样就能实现动画的循环了。


在iOS开发中经常会遇到各种各样的坑,慢慢积累,大师之路就在脚下。

相关文章

网友评论

  • 起个名字好难O0:animationRepeatCount为0是无限循环, 但是设置为其他数字时,图像就不会显示.这是什么情况

本文标题:animateWithDuration动画循环Animation

本文链接:https://www.haomeiwen.com/subject/vwdvpttx.html