zoukankan      html  css  js  c++  java
  • UITableViewCell滑动删除及移动

    实现Cell的滑动删除, 需要实现UITableView的代理UITableViewDelegate中如下方法:

    //先要设Cell可编辑

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

    {

    return YES;

    }

    //定义编辑样式

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

    {

    [tableView setEditing:YES animated:YES];

    return UITableViewCellEditingStyleDelete;

    }

    //进入编辑模式,按下出现的编辑按钮后

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

    {

    [tableView setEditing:NO animated:YES];

    }

             以下方法可以不是必须要实现,添加如下方法可实现特定效果:

    //修改编辑按钮文字

    - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath

    {

    return @"删除";

    }

             实现Cell可上下移动,调换位置,需要实现UiTableViewDelegate中如下方法:

    //先设置Cell可移动

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

    {

    return YES;

    }

    //当两个Cell对换位置后

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

    {

    }

    //设置进入编辑状态时,Cell不会缩进

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

    {

    return NO;

    }

    //在下面方法中添加 cell.showsReorderControl =YES;      

    //使Cell显示移动按钮       

    - (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath;

    实现Cell的滑动删除, 需要实现UITableView的代理UITableViewDelegate中如下方法:

    //先要设Cell可编辑

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

    {

    return YES;

    }

    //定义编辑样式

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

    {

        // 只在选中的cell上显示删除按钮

        NSIndexPath *path = [self.tableView indexPathForSelectedRow];

        if (path == indexPath) {

            [tableView setEditing:YES animated:YES];

        }

        return UITableViewCellEditingStyleDelete;

    }

    //进入编辑模式,按下出现的编辑按钮后

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

    {

    [tableView setEditing:NO animated:YES];

    }

             以下方法可以不是必须要实现,添加如下方法可实现特定效果:

    //修改编辑按钮文字

    - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath

    {

    return @"删除";

    }

             实现Cell可上下移动,调换位置,需要实现UiTableViewDelegate中如下方法:

    //先设置Cell可移动

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

    {

    return YES;

    }

    //当两个Cell对换位置后

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

    {

    }

    //设置进入编辑状态时,Cell不会缩进

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

    {

    return NO;

    }

    //在下面方法中添加 cell.showsReorderControl =YES;      

    //使Cell显示移动按钮       

    - (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath;

  • 相关阅读:
    导入已有项目到svn
    Linux用ICMP协议实现简单Ping网络监测功能
    c++ tcp 服务器和客户端例子
    C++ Socket 编程
    c++工厂模式和多线程结合
    Linux中ls命令详解
    Mac OS X 11中的/usr/bin 的“Operation not permitted”
    Warning: mysql_connect(): No such file or directory 解决方案总结(操作系统: Mac)
    页面组件渲染小组件(重点)
    Vue 路由
  • 原文地址:https://www.cnblogs.com/iamjjh/p/4686387.html
Copyright © 2011-2022 走看看