码迷,mamicode.com
首页 > 其他好文 > 详细

第九章 UITableView编辑模式笔记

时间:2016-05-12 22:15:19      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:


一,tableview自带编辑模式,可以添加、删除、移动item


二,可以添加section或者table的header和footer


三,使用interface Builder创建header的layout


四,UITableView显示header前,会向它的controller发送headerVIew消息

        

- (UIView *)headerView
{
// If you have not loaded the headerView yet...
if (!_headerView) {
// Load HeaderView.xib
[[NSBundle mainBundle] loadNibNamed:@"HeaderView"
owner:self
options:nil];
}
return _headerView;
}

在viewDidLoad中需要告诉tableView有headerVIew

- (void)viewDidLoad
{
[super viewDidLoad];
[self.tableView registerClass:[UITableViewCell class]
forCellReuseIdentifier:@"UITableViewCell"];
UIView *header = self.headerView;
[self.tableView setTableHeaderView:header];
}


五,任意一个都可以是一个NIB的owner,都可以通过bundle的loadNibNamed:owner:options:加载一个NIB文件;


六,通过tableViewController的setEditing:animated:. 开启编辑模式;


七,添加一个item

       操作dataSource的同时还要操作view

       

- (IBAction)addNewItem:(id)sender
{
NSInteger lastRow = [[self tableView] numberOfRowsInSection:0];
// Create a new BNRItem and add it to the store
BNRItem *newItem = [[BNRItemStore sharedStore] createItem];
// Figure out where that item is in the array
NSInteger lastRow = [[[BNRItemStore sharedStore] allItems] indexOfObject:newItem];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:lastRow inSection:0];
// Insert this new row into the table
[self.tableView insertRowsAtIndexPaths:@[indexPath]
withRowAnimation:UITableViewRowAnimationTop];
}

八,删除一个item

       1, tableView的编辑模式下,已经有delete按钮

       2,实现dataSource的 tableView:commitEditingStyle:forRowAtIndexPath:

             

- (void)tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath
{
// If the table view is asking to commit a delete command...
if (editingStyle == UITableViewCellEditingStyleDelete) {
NSArray *items = [[BNRItemStore sharedStore] allItems];
BNRItem *item = items[indexPath.row];
[[BNRItemStore sharedStore] removeItem:item];
// Also remove that row from the table view with an animation
[tableView deleteRowsAtIndexPaths:@[indexPath]
withRowAnimation:UITableViewRowAnimationFade];
}
}
同样要先操作model,再操作tableView(无法和android一样自动同步?)


九,移动item

       要实现moveItemAtIndex:toIndex:.;

       只需要操作Model,无需操作tableView













































第九章 UITableView编辑模式笔记

标签:

原文地址:http://blog.csdn.net/xinzhou201/article/details/51351657

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!