iOS beginUpdates && endUpdates用法
来源:互联网 发布:qt连接oracle数据库 编辑:程序博客网 时间:2024/06/05 17:47
(一)
http://blog.sina.com.cn/s/blog_7b9d64af0101b82p.html
http://blog.csdn.net/lotheve/article/details/50993817
http://blog.csdn.net/vieri_ch/article/details/46893023
如果只是单纯的一个插入或者删除操作,没必要用beginUpdates
和endUpdates
包裹操作方法;若是批量操作,建议用endUpdates
和endUpdates
,以保证界面对各个更新操作同时响应。
(二)
让我们来重点关注这行代码:[tableView beginUpdates];
文档中对这行代码的解释为让TableView产生插入,删除或重新加载cell
看到这里大家应该就恍然大悟了吧?原来当我们点击了一个cell后我们相当于重新加载了一遍我们的tableview,但是却和[tableView reloadata]是完全不一样的风格,reloadData这个方法会让tableView整体重新加载,相当于是作用在tableView上,而beginUpdates只是作用在cell上!
上代码
@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>
{
NSArray *datas;
NSIndexPath *inp;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
UITableView *tbv = [[UITableViewalloc] initWithFrame:self.view.boundsstyle:UITableViewStylePlain];
[self.viewaddSubview:tbv];
tbv.dataSource =self;
tbv.delegate =self;
datas = [[NSArrayalloc] initWithObjects:@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",nil];
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
returndatas.count;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if(inp) {
if (inp.section == indexPath.section && inp.row == indexPath.row) {
return60 * 2.0;
inp =nil;
}
}
return60;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
staticNSString *identifier = @"identifier";
UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:identifier];
if (!cell) {
cell = [[UITableViewCellalloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:identifier];
}
cell.textLabel.text = [datasobjectAtIndex:indexPath.row];
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPathanimated:TRUE];
//获取当前indexPath并判断对应的Cell是否被选中
inp = indexPath;
//最神奇的地方!!
[tableView beginUpdates];
[tableView endUpdates];
}
- iOS beginUpdates && endUpdates用法
- iOS开发-beginUpdates && endUpdates用法
- iOS开发-beginUpdates && endUpdates用法
- iOS UITableView - beginUpdates和endUpdates方法说明
- iOS UITableView 的beginUpdates和endUpdates
- UITableView - beginUpdates和endUpdates
- UITableView - beginUpdates和endUpdates
- UITableView的beginUpdates和endUpdates
- UITableView - beginUpdates和endUpdates方法
- UITableView的beginUpdates和endUpdates
- UITableView的 beginUpdates 和 endUpdates
- uitableview beginupdates 和endupdates 的使用
- beginUpdates方法和endUpdates方法的使用
- UITableView beginUpdates和endUpdates的使用
- beginUpdates和endUpdates---实现UITableView的动画块
- beginUpdates和endUpdates-实现UITableView的动画块
- beginUpdates和endUpdates-实现UITableView的动画块
- beginUpdates和endUpdates 实现UITableView的动画块
- std::find_if_not的使用
- 简单抽奖活动js代码
- jquery的ajax方法的回调函数详解
- 在kvm中使用网桥模式(BRIDGE NETWORKING MODE)
- JAVA多线程 基础知识 001
- iOS beginUpdates && endUpdates用法
- android 每行读取本地文件并转换为map对象
- oraclel数据库中的SQL语句使用学习
- 蓝鸥零基础学习HTML5第七讲 常见标签及标签类型的转换
- jd 1面+2面(2面挂掉)
- Java从数据库查询数据并封装到EXCEL表格中步骤
- Java使用PreparedStatement查询MySql中文乱码问题
- 用指针处理输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
- Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)