标签:
一、添加新的一行
0.取出最后一个子控件
UIView *last = [self.view.subviews lastObject];
// 新增这行的Y = 最后一个子控件Y + 最后一个子控件的高度
CGFloat rowY = last.frame.origin.y + lat.frame.size.height + 1; // 1为行间距
1. 创建一行
// UIView *rowView = [[UIView alloc] initWithFrame:CGRectMake(0, rowY, 320, 50)];
* 等价于下面两行
UIView *rowView = [[UIView alloc] init];
// rowView.frame = CGRectMake(0, rowY, 320, 50);
rowView.backgroundColor = [UIColor redColor]; // 设置背景色红色
2.添加一行到控制器的view中
[self.view addSubview:rowView];
3.让删除item有效
_removeItem.enabled = YES;
4.执行动画
rowView.frame = CGRectMake(320, rowY, 320, 50);
rowView.alpha = 0; // 默认透明度
4.1开始动画
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
rowView.frame = CGRectMake(0, rowY, 320, 50);
rowView.alpha = 1; // 透明度改为1
[UIView commitAnimations];
*等价于下面的动画block用法
[UIView animationWithDuration:1.0 animation:∧{
rowView.frame = CGRectMake(0, rowY, 320, 50);
rowView.alpha = 1; // 透明度改为1
}];
二、删除最后一行
1.取出最后以后一个子控件
UIView *last = [self.view.subviews lastObject];
// 判断最后一个类的属性,是toolbar返回
// Class c = [UIToolbar class];
// if ([last isKindOfClass: c]) return;
2移除除子控件
// [last removeFromSuperview];
[UIView animationWithDuration:1.0 animations:∧{
CGRect tempF = last.frame;
tempF.origin.x = 320;
last.frame = tempF;
last.alpha = 0;
} completion:∧(BOOL finished){
[last removeFromSuperview];
_removeItem.enabled = self.view.subviews.count >1;
}]
3.判断剩下的子控件个数
if (self.view.subviews.count == 1)
{
_removeItem.enabled = No;
}
*等价于下面一行
// _removeItem.enabled = self.view.subviews.count >1;
标签:
原文地址:http://www.cnblogs.com/wangkeqiang/p/4425069.html