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

一,发现问题

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值