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

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

UITableView本身自带了(增、删)编辑功能:

1.仅仅要调用UITableView的编辑代码 就会进入编辑状态:

[self.tableView setEditing:!self.tableView.editing animated:YES];
2.进入编辑状态的UITableView会调用代理的

- (UITableViewCellEditingStyle) tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:以便推断是添加还是删除的方法。

UITableViewCellEditingStyle为一个枚举值,如UITableViewCellEditingStyleDelete,UITableViewCellEditingStyleInsert

总体的代码例如以下:

#pragma mark 点击编辑删除- (IBAction)trashClick:(id)sender {    self.tableView.tag=EDIT_MOVE;    [self.tableView setEditing:!self.tableView.editing animated:YES];}#pragma mark -TableViewDataSource#pragma mark 当出现编辑状态时 假设是删除状态时 点击删除保存时调用的方法#pragma mark 当为添加状态事 点击添加button保存时调用的方法- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{    if (tableView.tag==20)    {        [self.arr removeObjectAtIndex:indexPath.row];        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];    }    else    {        [self.arr insertObject:@"new row..." atIndex:indexPath.row+1];        NSIndexPath *indexNew=[NSIndexPath indexPathForRow:indexPath.row+1 inSection:0];        [tableView insertRowsAtIndexPaths:@[indexNew] withRowAnimation:UITableViewRowAnimationRight];    }    }#pragma mark 点击编辑时出现的删除或者添加的button- (UITableViewCellEditingStyle) tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{    if (tableView.tag==20)    {        return UITableViewCellEditingStyleDelete;    }    else    {        return UITableViewCellEditingStyleInsert;    }}#pragma mark 移动item时,以便编辑模式后还能保存编辑的顺序-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{    NSString *currStr=self.arr[sourceIndexPath.row];    [self.arr removeObjectAtIndex:sourceIndexPath.row];    [self.arr insertObject:currStr atIndex:destinationIndexPath.row];    [tableView reloadData];}#pragma mark 点击编辑添加- (IBAction)addClick:(id)sender {    self.tableView.tag=EDIT_ADD;    [self.tableView setEditing:!self.tableView.editing animated:YES];}
删除、移动的界面
添加item的界面
你可能感兴趣的文章
爬虫案例若干-爬取CSDN博文,糗事百科段子以及淘宝的图片
查看>>
Web实时通信技术
查看>>
第三章 计算机及服务器硬件组成结合企业运维场景 总结
查看>>
IntelliJ IDEA解决Tomcal启动报错
查看>>
默认虚拟主机设置
查看>>
php中的短标签 太坑人了
查看>>
[译] 可维护的 ETL:使管道更容易支持和扩展的技巧
查看>>
### 继承 ###
查看>>
数组扩展方法之求和
查看>>
astah-professional-7_2_0安装
查看>>
函数是对象-有属性有方法
查看>>
uva 10107 - What is the Median?
查看>>
Linux下基本栈溢出攻击【转】
查看>>
c# 连等算式都在做什么
查看>>
使用c:forEach 控制5个换行
查看>>
java web轻量级开发面试教程摘录,java web面试技巧汇总,如何准备Spring MVC方面的面试...
查看>>
使用ansible工具部署ceph
查看>>
linux系列博文---->深入理解linux启动运行原理(一)
查看>>
Android反编译(一) 之反编译JAVA源码
查看>>
结合当前公司发展情况,技术团队情况,设计一个适合的技术团队绩效考核机制...
查看>>