1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| #import "ViewController.h"
@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>
//数据列表 @property (nonatomic,strong) NSMutableArray *dataList; @property (nonatomic,strong) UITableView *tableView; @end
@implementation ViewController
- (UITableView *)tableView { if (_tableView==nil) { _tableView=[[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStylePlain]; _tableView.dataSource=self; _tableView.delegate=self; [self.view addSubview:_tableView]; } return _tableView; } - (NSMutableArray *)dataList { if (_dataList==nil) { _dataList=[NSMutableArray arrayWithObjects:@"A", @"B",@"C",@"D", @"E",@"F",@"G", @"H",@"I",@"J", @"K",@"L",@"M", @"N",@"O",@"P", @"Q",nil]; } return _dataList; } - (void)viewDidLoad { [super viewDidLoad]; [self tableView]; self.tableView.editing=YES; }
#pragma 数据项 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.dataList.count; } //单元格内容 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *ID=@"Cell"; UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:ID]; if (cell==nil) { cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID]; } //设置内容 cell.textLabel.text=self.dataList[indexPath.row]; return cell; }
#pragma 代理 - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle==UITableViewCellEditingStyleDelete) { NSLog(@"要删除.."); [self.dataList removeObjectAtIndex:indexPath.row]; NSLog(@"%@",self.dataList); //刷新 //[self.tableView reloadData]; [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationMiddle]; }else if(editingStyle==UITableViewCellEditingStyleInsert) { NSLog(@"要添加数据"); [self.dataList insertObject:@"Z" atIndex:indexPath.row+1]; //刷新数据 NSIndexPath *path=[NSIndexPath indexPathForRow:indexPath.row+1 inSection:indexPath.section]; [self.tableView insertRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationMiddle]; } } // 只要实现此方法,就可以显示拖动控件 - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath { // 界面数据UITableView已经完成了 // 调整数据即可 // [self.dataList exchangeObjectAtIndex:sourceIndexPath.row withObjectAtIndex:destinationIndexPath.row]; // 1. 将源从数组中取出 id source = self.dataList[sourceIndexPath.row]; // 2. 将源从数组中删除 [self.dataList removeObjectAtIndex:sourceIndexPath.row]; NSLog(@"%@", self.dataList); // 3. 将源插入到数组中的目标位置 [self.dataList insertObject:source atIndex:destinationIndexPath.row]; NSLog(@"%@", self.dataList); }
#pragma mark - 代理方法 // 返回编辑样式,如果没有实现此方法,默认都是删除 - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.row % 2) { return UITableViewCellEditingStyleInsert; } else { return UITableViewCellEditingStyleDelete; } //return UITableViewCellEditingStyleInsert; } @end
|