zoukankan      html  css  js  c++  java
  • cell左滑加删除置顶功能 iOS

    需求:开发下面这种样式,列表左滑有置顶和删除功能

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

        return YES;

    }

     

    -(UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath {

        UIContextualAction *delete = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleNormal title:@"删除".ntes_localized handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) {

            [tableView setEditing:NO animated:YES];

            completionHandler(YES);

        }];

        UIContextualAction *top = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleNormal title:@"置顶" handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) {

            NSLog(@"%@",@"置顶");

            [tableView setEditing:NO animated:YES];

            completionHandler(YES);

        }];

        top.backgroundColor = UIColorFromRGB(0xEEF7FF);

        

        UISwipeActionsConfiguration *config = [UISwipeActionsConfiguration configurationWithActions:@[delete,top]];

        //禁止滑动到底直接执行第一个按钮的事件

        config.performsFirstActionWithFullSwipe=NO;

        return config;

    }

    修改左滑按钮的样式

    - (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath {

        UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];

        [CATransaction begin];

        [CATransaction setDisableActions:YES];

        for (UIView * subView in cell.superview.subviews) {

            if ([subView isKindOfClass:NSClassFromString(@"UISwipeActionPullView")]) {

                for (UIView * sonView in subView.subviews) {

                    if ([sonView isKindOfClass:NSClassFromString(@"UISwipeActionStandardButton")]) {

                        UIButton *aBtn = (UIButton *)sonView;

                        aBtn.titleLabel.font = kFont(14);

                        if (![aBtn.currentTitle isEqualToString:@"删除"]) {

                            [aBtn setTitleColor:UIColorFromRGB(0x3072F6) forState:UIControlStateNormal];

                        }

                    }

                }

            }

        }

        [CATransaction commit];

    }

  • 相关阅读:
    Unity3D 事件
    Unity3D 动画回调方法
    Unity3D优化总结
    Unity3D 第一人称控制器 C#脚本
    TCP/IP与IETF的RFC
    linux内核调优参考
    nginx_tcp_proxy代理酸酸乳
    Gitlab+Jenkins实现自动部署
    inotifywait命令详解及安装
    yum无法安装nginx,报错内容为1:nginx-1.14.2-1.el7_4.ngx.x86_64: [Errno 5] [Errno 2] 没有那个文件或目录
  • 原文地址:https://www.cnblogs.com/huangzs/p/13496224.html
Copyright © 2011-2022 走看看