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