iOS动画animateWithDuration:animations:无法显示动画的问题

原创 2015年07月10日 13:03:24

一,发现问题

1.错误代码如下:

- (void)deleteClick:(UIButton *)btn{

    //1.删除按钮所在的那一栏向右移动
    [UIView animateWithDuration:2 animations:^{

        NSLog(@"%@", NSStringFromCGRect(btn.superview.frame));

        CGRect tempFrame = btn.superview.frame;
        tempFrame.origin.x = self.view.frame.size.width;
        btn.superview.frame = tempFrame;
        btn.superview.alpha = 1;

        NSLog(@"%@", NSStringFromCGRect(btn.superview.frame));
    } completion:^(BOOL finished) {
        NSLog(@"end");

    }];
    //2.删除右移的那一栏
    NSLog(@"删除右移的那一栏前的视图数量%lu", self.view.subviews.count);
    [btn.superview removeFromSuperview];
    NSLog(@"删除右移的那一栏后的视图数量%lu", self.view.subviews.count);
}

2.本应该按照第一个实参的数值来进行位置的移动动画的,结果是:
1> 不管怎么修改第一个实参的值,都没看到动画.
2> 先显示第二个参数方法中(也就是动画过程)的日志信息,接着显示调用动画方法外(调用语句的下一条语句)的日志,最后显示第三个参数方法中(也就是动画完全执行完后)的日志.

2015-07-10 12:55:39.484 [基础控件][练习]01联系人管理01[6060:613] {{0, 103}, {320, 60}}
2015-07-10 12:55:39.486 [基础控件][练习]01联系人管理01[6060:613] {{320, 103}, {320, 60}}
2015-07-10 12:55:39.487 [基础控件][练习]01联系人管理01[6060:613] 删除右移的那一栏前的视图数量3
2015-07-10 12:55:39.487 [基础控件][练习]01联系人管理01[6060:613] 删除右移的那一栏后的视图数量2
2015-07-10 12:55:39.494 [基础控件][练习]01联系人管理01[6060:613] end

二,解决问题

1.我坚信,一定可以显示动画,于是把”删除右移的那一栏”的语句挪到第三个参数方法中,结果可以显示动画.

2.后来才发现原来是先执行了动画语句后的删除语句后,才开始对刚刚删除的控件执行动画,显然看不到右移的效果,只能看到删除的效果.

相关文章推荐

iOS CAlayer 动画进入后台或者 调用viewWillDisappear viewDidDisappear后动画暂停问题的解决办法

iOS CAlayer 动画进入后台或者 调用viewWillDisappear viewDidDisappear后动画暂停问题的解决办法 .When my application is en...
  • jeffasd
  • jeffasd
  • 2016年11月16日 10:58
  • 2070

iOS动画——Layer Animations

Layer Animations与我们前面第一篇讲过的View Animation有点类似,但是Layer Animation比之多了很多效果,更加强大。 我们先来看一下今天我们要实现的效果,今...

iOS动画——Layer Animations(三)

我胡汉三又回来啦,忙过了前一段时间以后,今天又给大家带来了两个动画,一个是形变、一个是颜色渐变。如下所示: 动画来源《iOS Animation by tutorials》 源码在gi...

IOS 动画效果Animations

最普通动画: //开始动画 [UIView beginAnimations:nil context:nil];  //设定动画持续时间 [UIView setAnimationDurati...

iOS动画——Layer Animations(二)

上一篇我们初步了解了一下Layer Animations,并且做了一个还算看的过去的动画,这一篇继续介绍一些Layer Animations的一些使用。 这是上一篇的地址: iOS动画——Layer...

iOS动画——Layer Animations(一)

Layer Animations与我们前面第一篇讲过的View Animation有点类似,但是Layer Animation比之多了很多效果,更加强大。 我们先来看一下今天我们要实现的效果,今天实...

IOS疯狂基础之-动画Animations

IOS中的动画右两大类1.UIView的视图动画2.Layer的动画 UIView的动画也是基于Layer的动画 动画的代码格式都很固定 1.UIView动画 :一般方式 [UIView...

swift用animateWithDuration实现简单view切换动画

主要用到包含结束方法的动画方法 UIView.animateWithDuration(duration, animations: { }, completion: { finished ...

利用"animateWithDuration"实现带弹簧动画的顶部通知栏

看到其他App上有带弹簧动画的顶部通知栏,于是研究了实现方法,封装了一下实现了效果,代码如下: PBFSpringEffectAlertView.h // // PBFSpringEff...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS动画animateWithDuration:animations:无法显示动画的问题
举报原因:
原因补充:

(最多只允许输入30个字)