单元格 - IOS

-、表视图的编辑状态

1、表视图的编辑状态有两种

  insert和delete

2、实现表视图编辑的步骤

 1)让tableview处于编辑状态

   self.tableView.editing

 2)通过代理方法确定tableView处于哪种状态(添加还是删除)

   - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{

  3)选择添加或者删除通过代理方法来做不同的处理

   - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

二、单元格的移动

 只需实现两个代理方法

 1、实现代理方法,让tableView的单元格支持移动,如果该方法返回为NO,则不支持单元格的移动,该方法一般可省略

   - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath

 2、实现代理方法,指定从哪里移到哪里

   - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath

cell折叠的核心逻辑

  /*
 * cell折叠的核心逻辑
 
 * 让选中那一段里面cell的行高都为0
 
 * 步骤:
 
   1、让UIButton事件带参数
   2、获取到点击的到底是哪一段
   3、重新设置点击段的行高
 
  */

tableView右侧索引 tableView给我们提供了代理方法来实现右侧的索引试图

具体实现步骤

 1、指定右侧索引显示的内容,

 - (NSArray *)sectionIndexTitlesForTableView:    (UITableView *)tableView

 2、每次点击默认都将选中的那一段给移动到最顶部,如果想要自定义位置,则实现如下代理方法

 - (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index

 PS:

 设置索引的字体颜色

 mytableView.sectionIndexColor

 设置索引的背景颜色

 mytableView.sectionIndexBackgroundColor

 */

三、单元格的重用机制

    试想如果这个表试图有几十个几百行数据的话,如果我们每次都创建一个cell将会创建太多的对象,这样会使你的软件容易卡顿,如果这个cell上面在放有高清图片的话更不可想象。

    1)当表试图显示时,首先会创建几个cell显示在界面上

    2)当一个cell被移出表视图时,这个cell对象并不会被释放,而是被放到一个缓存池中

    3)当一个cell将要显示时,我们先要在缓存池中查看缓存池中是否有cell,如果有的话,将这个cell对象取出来复用,如果没有再重新创建

你可能感兴趣的:(单元格 - IOS)