iOS-UI-UITableView 的编辑模式-插入-删除-
import "RootViewController.h"
import "Student.h"
@interface RootViewController ()<UITableViewDataSource, UITableViewDelegate>
@property (nonatomic, retain) NSMutableDictionary *stuInfoDic;
@property (nonatomic, retain) UITableView *table;
@end
@implementation RootViewController
(void)dealloc
{[_stuInfoDic release]; [super dealloc];
}
(void)viewDidLoad {
[super viewDidLoad]; // Do any additional setup after loading the view. self.view.backgroundColor = [UIColor whiteColor]; self.navigationItem.title = @"YIem"; // TableView self.table = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain]; self.table.delegate = self; self.table.dataSource = self; self.table.rowHeight = 70; [self.view addSubview:self.table]; [_table release]; [self gatData];
warning 编辑 1 - 创建编辑按钮
self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
warning 编辑 2 - 关联tableView编辑功能
(void)setEditing:(BOOL)editing animated:(BOOL)animated
{[super setEditing:editing animated:animated]; [self.table setEditing:editing animated:animated];
}
warning 编辑 3 - 设置是否允许编辑
- (BOOL)tableView:(UITableView )tableView canEditRowAtIndexPath:(NSIndexPath )indexPath
{
return YES;
}
warning 编辑 4 - 设置编辑样式(无/ 删除/ 插入)
(UITableViewCellEditingStyle)tableView:(UITableView )tableView editingStyleForRowAtIndexPath:(NSIndexPath )indexPath
{
// 按区
// 举例: 前4个区删除样式 中间4各区插入 剩下无状态
if (indexPath.section < 4) {return UITableViewCellEditingStyleDelete;
}
if (indexPath.section >= 4 && indexPath.section < 8) {return UITableViewCellEditingStyleInsert;
}
return UITableViewCellEditingStyleNone;
}
warning 编辑 5 - 实现编辑逻辑 点击编辑实际功能时触发 并且可以左滑动编辑状态
(void)tableView:(UITableView )tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(nonnull NSIndexPath )indexPath
{
NSLog(@"YIEM");//// 先操作数据 // 可以放在里面
NSString *key = [self.stuInfoDic.allKeys objectAtIndex:indexPath.section];
NSMutableArray *arr = [self.stuInfoDic objectForKey:key];// 删除分支
if (UITableViewCellEditingStyleDelete == editingStyle) {//// 先操作数据
// NSString *key = [self.stuInfoDic.allKeys objectAtIndex:indexPath.section];
// NSMutableArray *arr = [self.stuInfoDic objectForKey:key];
// Student *stu = [arr objectAtIndex:indexPath.row];
// 删除学生信息
[arr removeObjectAtIndex:indexPath.row];
//// 后操作界面
// [self.table reloadData]; // 整体刷新
// 删除界面某一行
[self.table deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];
// 删除区
}
// 插入分支
if (UITableViewCellEditingStyleInsert == editingStyle) {
Student *stu = [[Student alloc] init];
stu.name = @"全❤强";
stu.phoneNumber = @"101010101010";
stu.picture = @"image27.jpg";//////
// 插入数据
[arr insertObject:stu atIndex:indexPath.row];
// 操作界面
[self.table insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationTop];
}
}
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »