UITableViewController(表视图控制器)继承自UIViewController,自带一个tableView
self.view不是UIView而是UITableView
datasource和delegate你默认都是self(UITableViewController)
开发过程中只需建立UITableViewController子类
 
tableView编辑
 
tableView编辑:cell的添加、删除
使用的场景:删除一个下载好的视频,删除联系人。
插入一条新的聊天记录等
 
编辑的步骤
 
1、self让tableView处于编辑状态
 
    //editButtonItem对应的相应方法内部会根据点击按钮的状态通过setEditing:animtated:方法来控制表视图是否进入编辑状态
     self.navigationItem.rightBarButtonItem = self.editButtonItem;
2、指定tableView那些行可以编辑
 
3、指定tableView编辑样式(添加、删除)
 
4、编辑完成(先操作数据源,在修改UI)
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
// 1、应当先删除对应行的数据
// 2、再将对应行的单元格从表视图中删除
[self.datasource removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationMiddle];
} else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
// 1、现在数组中插入对应的对象
// 2、创建对应对象的indexPath
// 3、根据indexPath在表视图中的位置插入对应行
[self.datasource addObject:@"新插入的数据"];
NSIndexPath *insertPath = [NSIndexPath indexPathForRow:self.datasource.count - inSection:];
[tableView insertRowsAtIndexPaths:@[insertPath] withRowAnimation:UITableViewRowAnimationMiddle];
}
}

当表格被拖拽后会相应此方法,

当表格处于编辑状态时,可以通过以下方法设置相应的表格是否与许被编辑

 

UITableView 表视图编辑的更多相关文章

  1. UI学习笔记---第十天UITableView表视图编辑

    UITableView表视图编辑 表视图编辑的使用场景 当我们需要手动添加或者删除某条数据到tableView中的时候,就可以使用tableView编辑.比如微信 扣扣中删除和某人的通话 当我们需要手 ...

  2. UI学习笔记---第九天UITableView表视图

    UITableView表视图 一.表视图的使用场景 表视图UITableView是iOS中最重要的视图,随处可见,通常用来管理一组具有相同数据结构的数据 表视图继承自UIScrollView,所以可以 ...

  3. UITableView表视图以及重建机制

    表视图UITableView   表视图UITableView,是IOS中最重要的视图,随处可见 表视图通常用来管理一组具有相同数据结构的数据 UITableView继承自UIScrollView,所 ...

  4. UI学习笔记---第十一天UITableView表视图高级-自定义cell

    自定义cell,多类型cell混合使用,cell自适应高度 自定义cell就是创建一个UITableViewCell的子类 把cell上的空间创建都封装在子类中,简化viewController中的代 ...

  5. UI:UITableView表视图

    表视图 UITableView,iOS中最重要的视图,随处可⻅见. 表视图通常⽤用来管理⼀一组具有相同数据结构的数据. UITableView继承⾃自UIScrollView,所以可以滚动,表视图的每 ...

  6. UI基础:UITableView表视图

    表视图 UITableView,iOS中最重要的视图,随处可见. 表视图通常用来管理一组具有相同数据结构的数据. UITableView继承于UIScrollView,所以可以滚动 表视图的每条数据都 ...

  7. XAF-列表视图编辑模式

    下面来看看XAF中列表有哪些编辑模式: 一.inline编辑 下图说明了WinForms和ASP.NET应用程序中的可编辑列表视图. 在win中,这个很友好,就像excel中编辑一样.5星功能^_^. ...

  8. iOS UITableView表视图滚动隐藏UINavigationController导航栏

    UITableView 继承于UIScrollView 所以UIScrollView 的代理方法相同适用于UITableView 中 隐藏导航栏的方法为: self.navigationControl ...

  9. IOS开发之表视图(UITableView)

    IOS开发之表视图(UITableView)的基本介绍(一) (一):UITableView的基本概念 1.在IOS开发中,表视图的应用十分广泛和普及.因此掌握表视图的用法显得非常重要.一般情况下对于 ...

随机推荐

  1. 洛谷P1631 序列合并

    P1631 序列合并 236通过 657提交 题目提供者xmyzwls 标签堆 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 为什么不行? 题目描述 有两个长度都是N的序列A和B,在A和B中 ...

  2. TCP/IP详解学习笔记(1)-- 概述

    1.TCP/IP的分层结构      网络协议通常分不同层次进行开发,每一层分别负责不同的同信功能.TCP/IP通常被认为是一个四层协议系统.      如图所示.       1)链路层(数据链路层 ...

  3. 新安装的ubuntu系统如何设置中文输入法的方案

    本文是本人写的第一篇的linux博客,因为很菜,所以就把刚才自己安装中文输入法的过程给大家介绍一下,希望有所帮助. 1.首先,打开命令终端,两种方式,在Dash里面输入terminal然后enter, ...

  4. ionic 向後台請求json 數據 在頁面上的顯示問題

    我向服務器請求數據,獲取到的數據竟然不能顯示在頁面上  我那個氣啊..... <ul> <!-- <li ng-repeat="phone in phones&quo ...

  5. 使用throws抛出异常

    声明抛出异常实在一个方法声明的throws子句中指明的.throws子句方法的基本形式如下.方法 throws 异常列表{ }throws子句中可以指明多个异常,说明该方法不对这些异常进行处理,而是抛 ...

  6. Boost C++: 数据结构---tuple

    #include <boost/tuple/tuple.hpp> #include <boost/tuple/tuple_io.hpp> #include <boost/ ...

  7. hdu1171

    use fmax().-------TLE #define mmax(a,b) (a)>(b)?(a):(b);   ---796ms that's it! #include <stdio ...

  8. Unieap3.5-JS常用方法

    引用js文件 获得当前主体 getDimensionId(); 当前单位类型(网点,分部,总部) getUnitType(); 数据库日期 newOracleDate(); unieap.byId(& ...

  9. Java设计模式-Builder生成器模式

    概念: 生成器模式也称之为建造者模式.生成器模式的意图在于将一个复杂的构建与其表示相分离,构建与产品分离. UML: Ibuild接口清晰地反映了创建产品Product的流程. 生成器模式涉及4个关键 ...

  10. 回到顶部js代码

    function go_to_top(){ //把内容滚动指定的像素数(第一个参数是向右滚动的像素数,第二个参数是向下滚动的像素数) window.scrollBy(0,-10); //延时递归调用, ...