zoukankan      html  css  js  c++  java
  • UITableView中Cell和section的插入与删除

    插入段:

    - (void)insertSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation;

    - (void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation;

    插入行:

    - (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;

    - (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;

    如果在编辑模式下,复写此方法:

     1 - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
     2 {
     3     if (editingStyle == UITableViewCellEditingStyleDelete) {
     4         // Delete the row from the data source
     5         if (indexPath.row == 0) {
     6             [self.modeInfomation removeObjectAtIndex:indexPath.section];
     7             [self.modeNameArr removeObjectAtIndex:indexPath.section];
     8             NSIndexSet *sectionIndex = [NSIndexSet indexSetWithIndex:indexPath.section];
     9             [self.tableView deleteSections:sectionIndex withRowAnimation:UITableViewRowAnimationLeft];
    10         }
    11         else {
    12             [[self.modeInfomation objectAtIndex:indexPath.section] removeObjectAtIndex:indexPath.row];
    13             [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
    14         }
    15     }   
    16     else if (editingStyle == UITableViewCellEditingStyleInsert) {
    17         // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
    18     }   
    19 }

    在普通模式下:

    1 [self.tableView beginUpdates];
    2     [[self.modeInfomation objectAtIndex:tag] addObject:@"hehe"];
    3     NSIndexPath *indexpath = [NSIndexPath indexPathForRow:row + 1 inSection:tag];
    4     [self.tableView insertRowsAtIndexPaths:@[indexpath] withRowAnimation:UITableViewRowAnimationRight];
    5     [self.tableView endUpdates];

    注意:

    插入或者删除行或段,先更新datasource,再insertRows或insertSections!两个都要更新!

  • 相关阅读:
    linux系统常用命令
    oracle resetlog与noresetlog的作用(转载)
    RMAN备份之非归档模式下的备份
    查看oracle锁及解决办法
    夫夷以近,则游者众,险以远,则至者少!
    (转)一个10年程序员职业发展、总结和困境
    在myeclipse中写sql语句的细节问题
    myeclipse查询mysql出来的汉字是乱码
    如何将DB2的数据库转换到mySQL中?
    笔记本建立wifi热点的实用详细步骤
  • 原文地址:https://www.cnblogs.com/hereiam/p/3856188.html
Copyright © 2011-2022 走看看