UITableView的编辑(插入、删除、移动)

先说两个方法beginUpdates和endUpdates,几点注意事项:

  • 一般我们把行、块的插入、删除、移动写在由这两个方法组成的函数块中。如果你不是在这两个函数组成的块中调用插入、删除、移动方法,表的属性(比如行数)可能失效。
  • 一般也不应该在由这两个函数组成的函数块中调用reloadData,如果你这么做了,那么所有的动画都要自己进行。
  • 这两个方法组成的块,可以嵌套。
  • 同一个块中的插入、删除操作,先处理完删除操作才会执行插入操作,而不管在它们在块中的顺序。

UITableView是否处于编辑模式取决于它的editing属性。当处于编辑模式时,在每一个cell的左侧会显示一个插入或删除的控件,具体显示什么取决于cell是怎么配置的。触摸一个控件的时候会让tableView调用数据源方法tableView:commitEditingStyle:forRowAtIndexPath:。可以调用setEditing:animated:让tableView进入或者退出编辑模,表的数据源可以有选择的拒绝cell进入编辑模式,通过实现tableView:canEditRowAtIndexPath:。

当一个tableView处于编辑状态时,它的代理通过 tableView:editingStyleForRowAtIndexPath:返回每个可编辑的cell所处的状态(插入、删除)。当一个tableView收到setEditing:animated:消息时,它给每个每一个可见行的UITableViewCell对象发送相同的消息,接着它给数据源和代理发送一连串消息像下面图中描述的那样。

当用户swipe across一行显示delete按钮,在上面图中的调用顺序有一个变化。当用户swipe一行要删除的时候,tableView首先检查它的数据源是否实现了tableView:commitEditingStyle:forRowAtIndexPath:方法,如果实现了,tableView给自己发送setEditing:animated:消息,进入编辑模式。在这个“swipe to delete”模式,tableView不显示编辑和重新排序控件。因为这是一个用户驱动事件,it also brackets the messages to the delegate inside of two other messages:tableView:willBeginEditingRowAtIndexPath: and tableView:didEndEditingRowAtIndexPath:.(怎么翻译合适^.^)。通过实现这些方法,代理可以合适的更新tableView的外观。

【后边有点复杂,我先研究研究】

时间: 2024-08-04 23:08:35

UITableView的编辑(插入、删除、移动)的相关文章

UI第十讲.UITableView的编辑(插入删除和移动)

一.tableView编辑(插入和删除) 实例代码: 效果图:(能添加和删除) 二.tableView移动 实例代码:(能过移动位置,同时也能添加删除) //添加删除的步骤 //设置分区效果 移动过程和步骤(重要步骤) 效果图:(能够添加,删除和移动)

iOS - UITableView 编辑(cell的插入, 删除, 移动)

UITableView Cell的插入/删除 核心API Class : UITableView Delegate : UITableViewDataSource, UITableViewDelegate 涉及的API:(API的官方详细注释详见本章结尾) /** TableView 进入或退出编辑状态(TableView 方法). */ - (void)setEditing:(BOOL)editing animated:(BOOL)animate /** 确定哪些行的cell可以编辑 (UIT

C# 实现对PPT插入、编辑、删除表格

在现代学习和办公当中,经常会接触到对表格的运用,像各种单据.报表.账户等等.在PPT演示文稿中同样不可避免的应用到各种数据表格.对于在PPT中插入表格,我发现了一个新方法,不过我用到了一款免费的.NET组件--Free Spire.Presentation,在C#中添加该产品DLL文件,可以简单快速地实现对演示文稿的表格插入.编辑和删除等操作.有需要的话可以在下面的网址下载:https://www.e-iceblue.cn/Downloads/Free-Spire-Presentation-NE

C# 如何在Excel表格中插入、编辑和删除批注

概述 为文档添加必要的批注可以给文档使用者提供重要的提示信息,下面的示例中,将介绍通过C#编程语言来给Excel表格中的指定单元格内容添加批注,此外,对于已有的批注,如果需要修改,我们也可以进行编辑或者删除批注.示例内容将包含以下主要内容:1.插入批注1.1 插入文本1.2 插入图片2.编辑批注2.1 修改批注内容2.1 设置批注可见性3.删除批注 工具 Spire.XLS for .NET 8.0 提示:在进行代码操作之前,需下载安装Spire.Xls,并添加引用dll文件,添加如下using

【UIKit】UITableView.07 编辑模式

[1]拖动好界面 [2]设置协议,数据源 [3]代码 1.声明可变数组,用来存放所有数据对象 @interface ViewController () @property(nonatomic,strong)NSMutableArray *mydata; @end 2.初始化数据[创建30个对象数据] - (void)viewDidLoad { [super viewDidLoad]; self.mydata=[NSMutableArray array]; for(int i =0;i<30;i+

iOS开发 -------- UITableView的编辑

一 核心API Class: UITableView Delegate: UITableViewDataSource, UITableViewDelegate 涉及到的API: 插入和删除 1 /** 2 * 让tableView进入或退出编辑状态(TableView方法) 3 */ 4 - (void)setEditing:(BOOL)editing animated:(BOOL)animated; 5 6 /** 7 * 指定哪些行的cell可以进行编辑(UITableViewDataSou

android GB2/GB3版本预置联系人且不可编辑或删除

一.针对GB2.GB3等版本,预置联系人可以 中Part one这部分即可. 例如:在AbstractStartSIMService类的开始增加的定义如下: public static final int  INSERT_NUMBER_COUNT = 4;    //定义要预置的联系人的个数 public static final String  defaultNumbers[] = {"xxxx", "xxxx", "xxxx" , "

代码错误:插入删除没有数据显示

插入删除没有数据显示,什么情况:   问题原因: 就是加上了下面这段代码导致的:把这段代码注释掉就解决了     override func numberOfSectionsInTableView(tableView: UITableView) -> Int { //        // #warning Potentially incomplete method implementation. //        // Return the number of sections. //    

UITableView的编辑模式

UITableView可以分普通模式和Editing模式两种,这里我们着重讨论Editing模式,Editing模式中又分三种操作:Insert.Delete. Reallocted.Insert和Delete针对数据源内容的修改,而Reallocated是针对数据源位置的修改.下面分别讨论. 一.Insert Or Delete 当UITableView接收到 setEditing:animated:时,它会将同样的消息转发给每一个可见行,大致会经历如下步骤,引用至官方: The table

双向循环链表 初始化 插入 删除

#include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR -1 #define TRUE 1 #define FALSE -1 #define NULL 0 #define OVERFLOW -2 #define ElemType int #define Status int typedef int ElemType typedef int Status #define LEN sizeof(DuLNode)