博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UITableView(二)
阅读量:5362 次
发布时间:2019-06-15

本文共 4561 字,大约阅读时间需要 15 分钟。

1 #import "ViewController.h"  2   3 @interface ViewController ()
4 /** 5 * 存储数据的数组 6 */ 7 @property(nonatomic,strong) NSMutableArray *studetsNameArray; 8 /** 9 * tabView的表视图展示数据 10 */ 11 @property(nonatomic,strong) UITableView *tableView; 12 @end 13 14 @implementation ViewController 15 16 - (void)viewDidLoad { 17 [super viewDidLoad]; 18 // Do any additional setup after loading the view, typically from a nib. 19 20 UITableView *tableView = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].bounds style:UITableViewStylePlain]; 21 tableView.dataSource = self; 22 tableView.delegate = self; 23 self.tableView = tableView; 24 self.studetsNameArray = [NSMutableArray arrayWithObjects:@"张秀洁",@"麻振辉",@"王 振",@"刘润宁",@"王玲玲",@"原溢锴",@"余清平",@"刘文学",@"李日清",@"李小康",@"焦焕然",@"蔺宇彬",@"韩振宇",@"刘永庆",@"张 涛",@"钟富昌",@"刘梦君",@"吴岳恒",@"任东强",@"温 哲",@"张明亮",@"孙君堂",@"岳邵军",@"燕 慈",@"杜湛军",@"石 鑫",@"毛艺霖",@"王自发",@"郭 宁",@"张佳翔",@"朱 磊",@"孟德峰",@"李 雅",@"王 俊",@"李 曼",@"孟方乐",@"卢 浩",@"刘其中",@"彭晨晨",@"蒋宗涛",@"高存昊",@"邱纪生", nil]; 25 26 27 [self.view addSubview:self.tableView]; 28 29 #pragma mark - 设置编辑的流程 30 //第一步:打开tableView的编辑状态 31 [self.tableView setEditing:YES animated:YES]; 32 33 //第二步:设置编辑相关的代理 34 /* 35 1.确定是否处于编辑状态 36 2.设置编辑的样式 37 3.提交编辑状态处理数据 38 以上均是代理方法 39 */ 40 //将naVC的右侧按钮设置为编辑按钮(每一个控制器里都提供了一个编辑的按钮) 41 self.navigationItem.rightBarButtonItem = self.editButtonItem; 42 43 44 45 46 47 } 48 #pragma mark -设置tableView的移动代理方法 49 //确定每一行是否可以移动 50 -(BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath 51 { 52 return YES; 53 } 54 //处理移动的位置,还有相关的数据 55 -(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath 56 { 57 //取出原本位置的相关原数据 58 NSString *name = [self.studetsNameArray objectAtIndex:sourceIndexPath.row]; 59 //删除原本位置的相关数据 60 [self.studetsNameArray removeObjectAtIndex:sourceIndexPath.row]; 61 //将删除的数据添加到目的地数据里 62 [self.studetsNameArray insertObject:name atIndex:destinationIndexPath.row]; 63 64 } 65 #pragma mark -打开tableView的编辑状态 66 -(void)setEditing:(BOOL)editing animated:(BOOL)animated 67 { 68 //父视图的交互关闭掉了,子视图还能响应吗?下面的写法只能交互一次,BOOL值只能改变一次 69 //[super setEditing:YES animated:YES]; 70 //正确的写法是下面的 71 [super setEditing:editing animated:animated]; 72 //调整编辑按钮在编辑和完成状态下进行切换 73 [_tableView setEditing:editing animated:animated]; 74 } 75 76 -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 77 { 78 return self.studetsNameArray.count; 79 } 80 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 81 { 82 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reusable"]; 83 if (cell == nil) { 84 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"reusable"]; 85 } 86 cell.textLabel.text = [self.studetsNameArray objectAtIndex:indexPath.row]; 87 return cell; 88 } 89 90 #pragma mark - 设置编辑的代理 91 //1.是否处于编辑的状态 92 -(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 93 { 94 NSString *name = [self.studetsNameArray objectAtIndex:indexPath.row]; 95 if ([name isEqualToString:@"吴岳恒"]) { 96 return NO; 97 } 98 return YES; 99 }100 101 //2.设置编辑的样式102 -(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath103 {104 //也可以设置多选状态 delete | insert 即可插入又可以删除105 return UITableViewCellEditingStyleDelete;106 }107 108 //3.提交编辑状态,处理相关的数据109 110 -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath111 {112 //如果编辑状态处于删除状态,需要将此条数据删除113 if (editingStyle == UITableViewCellEditingStyleDelete) {114 //删除与之对应的数据,(先删除数据然后再处理视图)115 [self.studetsNameArray removeObjectAtIndex:indexPath.row];116 //处理视图的方式有两种117 //1.根据indexPath删除具体的某一行118 //[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationRight];119 //2.直接使视图重新加载数据120 [tableView reloadData];121 }122 }123 - (void)didReceiveMemoryWarning {124 [super didReceiveMemoryWarning];125 // Dispose of any resources that can be recreated.126 }127 128 @end

 

转载于:https://www.cnblogs.com/DevinSMR/p/5232659.html

你可能感兴趣的文章
利用bootstrap和webform的异步CRUD及分页
查看>>
HDUOJ 1879继续畅通工程(并查集)
查看>>
OC12_自动释放池
查看>>
Saiku资源帖
查看>>
解决手机页面中点击文本框,网页放大问题
查看>>
2-5
查看>>
牛客多校3 A-PACM Team(状压降维+路径背包)
查看>>
HDU - 4284 Travel(floyd+状压dp)
查看>>
1027 制作表格
查看>>
Android之Socket通信、List加载更多、Spinner下拉列表
查看>>
面向对象的介绍与特性
查看>>
typing-python用于类型注解的库
查看>>
20189215 2018-2019-2 《密码与安全新技术专题》第13周作业
查看>>
第四周作业
查看>>
一、HTML基础
查看>>
蓝牙进阶之路 (002) - HC-05与HC-06的AT指令的区别(转)
查看>>
mysql的limit经典用法及优化
查看>>
C#后台程序与HTML页面中JS方法互调
查看>>
mysql 同一个表中 字段a 的值赋值到字段b
查看>>
linux系统可执行文件添加环境变量使其跨终端和目录执行
查看>>