• UITableView 自带编辑删除 自己定义button


    一:UITableView 自带编辑删除

    1:实现两个方法就可以

    #pragma mark   tableView自带的编辑功能

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

        //方法实现后。默认实现手势滑动删除的方法

        if (editingStyle!=UITableViewCellEditingStyleDelete) {

            return ;

        }

        _attentionTableView.editing = !_attentionTableView.editing;


        //删除店铺收藏

        [goods_bll deleteCollectShopWithStoreId:[collectShopAry[indexPath.row] objectForKey:@"storeId"] andUid:userUidStr success:^(id json) {

            [self getCollectShop];

        } faile:^{

        }];

    }

    #pragma mark 选择编辑的样式

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

        return UITableViewCellEditingStyleDelete;//手势滑动删除

    }

    2:实现这两个方法实现自带的删除。此时删除button为英文delete ,假设想改变内容,变成中文删除或是别的内容。须要实现以下的方法

    #pragma mark 中引文转换-delete

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

        return @"删除";

    }

    3:

    **

     *  tableView:editActionsForRowAtIndexPath:     // 设置滑动删除时显示多个button

     *  UITableViewRowAction                        // 通过此类创建button

     *  1. 我们在使用一些应用的时候,在滑动一些联系人的某一行的时候,会出现删除、置顶、很多其它等等的button,在iOS8之前,我们都须要自己去实现。But。到了iOS8,系统已经写好了,仅仅须要一个代理方法和一个类就搞定了

     *  2. iOS8协议多了一个方法,返回值是数组的tableView:editActionsForRowAtIndexPath:方法,我们能够在方法内部写好几个button,然后放到数组中返回,那些button的类就是UITableViewRowAction

     *  3. 在UITableViewRowAction类,我们能够设置button的样式、显示的文字、背景色、和button的事件(事件在Block中实现)

     *  4. 在代理方法中,我们能够创建多个button放到数组中返回。最先放入数组的button显示在最右側,最后放入的显示在最左側

     *  5. 注意:假设我们自己设定了一个或多个button,系统自带的删除button就消失了...

     */

    #pragma mark 在滑动手势删除某一行的时候,显示出很多其它的button

    - (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath

    {

        // 加入一个删除button

        UITableViewRowAction *deleteRowAction = [UITableViewRowActionrowActionWithStyle:UITableViewRowActionStyleDestructive title:@"删除"handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {

            NSLog(@"点击了删除");

            

            // 1. 更新数据

            [_allDataArray removeObjectAtIndex:indexPath.row];

            // 2. 更新UI

            [tableView deleteRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationAutomatic];

        }];

        

        // 删除一个置顶button

        UITableViewRowAction *topRowAction = [UITableViewRowActionrowActionWithStyle:UITableViewRowActionStyleDefault title:@"置顶"handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {

            NSLog(@"点击了置顶");

            

            // 1. 更新数据

            [_allDataArray exchangeObjectAtIndex:indexPath.row withObjectAtIndex:0];

            

            // 2. 更新UI

            NSIndexPath *firstIndexPath = [NSIndexPath indexPathForRow:0inSection:indexPath.section];

            [tableView moveRowAtIndexPath:indexPathtoIndexPath:firstIndexPath];

        }];

        topRowAction.backgroundColor = [UIColor blueColor];

        

        // 加入一个很多其它button

        UITableViewRowAction *moreRowAction = [UITableViewRowActionrowActionWithStyle:UITableViewRowActionStyleNormal title:@"很多其它"handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {

            NSLog(@"点击了很多其它");

            

            [tableView reloadRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationMiddle];

        }];

        moreRowAction.backgroundEffect = [UIBlurEffecteffectWithStyle:UIBlurEffectStyleDark];

        

        // 将设置好的button放到数组中返回

        return @[deleteRowAction, topRowAction, moreRowAction];

    }



  • 相关阅读:
    024 其它 关联映射
    023 复合主键 关联映射
    022 component(组件)关联映射
    020 <one-to-one>、<many-to-one>单端关联上的lazy(懒加载)属性
    019 关联映射文件中集合标签中的lazy(懒加载)属性
    018 关联映射文件中<class>标签中的lazy(懒加载)属性
    017 多对多关联映射 双向(many-to-many)
    016 多对多关联映射 单向(many-to-many)
    015 一对多关联映射 双向(one-to-many)
    014 一对多关联映射 单向(one-to-many)
  • 原文地址:https://www.cnblogs.com/llguanli/p/8612333.html
Copyright © 2020-2023  润新知