美文网首页UI基础
iOS 之UITableView编辑

iOS 之UITableView编辑

作者: CarsonChen | 来源:发表于2016-03-17 19:04 被阅读232次

    一. UITableView编辑

    UITableView编辑步骤:a.让tableView处于编辑状态 b.确定哪些cell被编辑 c.设定cell的编辑样式 d.提交编辑

    以下方法均为UITableViewDataSource的协议方法

    - (void)setEditing:(BOOL)editing animated:(BOOL)animated (让tableView进入编辑状态,此方法需要super使用父类的方法,并且指定当前的tableView调用)

    - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath (指定哪些cell能被编辑,默认全部都能被编辑)

    - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath (指定tableViewCell的编辑样式)

    - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath (确定编辑完成)

    1. 添加

    先修改数据源,然后执行reloadData该方法,能够刷新数据.通常只是修改数据源,reloadData方法消耗内存太大.

    2. 删除

    删除操作是先删除数据源中对应的数据,然后再操作UI,注意(删除后,要判断该分区是否还有元素,如果没有元素了,则将该分区删除,包含右侧索引).

    3. 移动

    指定哪些cell可以被移动.

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

    从sourceIndexPath移动到destinationIndexPath

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

    首先操作数据源获取移动前的位置,将其删除后,加入到移动后数据源位置中.

    限制跨区移动方法,判断sourceIndexPath.section与proposedDestinationIndexPath.section是否一致,如果不一致,则为跨区移动.从而来限制跨区移动.

    - (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath

    二. UITabViewController

    UITableViewController是继承UIViewController的一个类.只不过UITableViewController多了一个tableView的属性.即:UITableViewController是一个自带tableView的视图控制器.

    注意事项:

    1. UITableViewController继承于UIViewController,自带一个tableView.

    2. self.view 不是UIView的对象,而是UITableView的对象.

    3. dataSource与delegate两个协议的代理人都为self.

    4. 开发中只需要建立UITableViewController的子类使用.

    相关文章

      网友评论

        本文标题:iOS 之UITableView编辑

        本文链接:https://www.haomeiwen.com/subject/zneclttx.html