iOS左滑插入多个按钮,按钮自定义颜色、图片、文字字体等

原创 2017年08月16日 17:42:37

iOS8.0之后UITableView新添加了,左滑可以添加多个按钮的方法

- (nullable NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{
    __weak typeof(self) weakSelf = self;
    NSMutableArray *array = [NSMutableArray array];
    //插入多个按钮,按钮位置排序0~4,从右向左
    for(int i=0; i<4; i++){
        __block NSInteger tag = i;
        UITableViewRowAction *rowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"       " handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
            [weakSelf tapRowAction:indexPath.row type:tag];
        }];
        rowAction.backgroundColor = HEX_COLOR(@"afb6c1");
        [array addObject:rowAction];
    }
    
    return array;
}

- (void)tapRowAction:(NSInteger)row type:(NSInteger)type{
    if(type==0){
        [[[CommonUIAlert alloc] init] showCommonAlertView:self title:@"" message:@"是否删除该名片" cancelButtonTitle:@"取消" otherButtonTitle:@"确定" cancle:^{
        } confirm:^{
            [self.dataArray removeObjectAtIndex:row];
            [self.tableView beginUpdates];
            [self.tableView deleteRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:row inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
            [self.tableView endUpdates];
            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
                [self.tableView reloadData];
            });
        }];
    }else if(type==1){
        CardGroupViewController *vc = [CommonMethod getVCFromNib:[CardGroupViewController class]];
        vc.isShowGroupList = NO;
        [self.navigationController pushViewController:vc animated:YES];
    }else if(type==2){
        NSString *str = [NSString stringWithFormat:@"tel:%@",@"15261173162"];
        UIWebView *callWebView = [[UIWebView alloc]init];
        [callWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]];
        [self.view addSubview:callWebView];
    }else{
        [self showMessageView:[NSArray arrayWithObjects:@"15261173162", nil] title:@""];
    }
}


自定义左滑按钮,UITableViewRowAction,在你自定义的cell或者UITableViewCell中,重写-(void)layoutSubviews方法

- (void)layoutSubviews{
    for (UIView *subView in self.subviews) {
        if([subView isKindOfClass:NSClassFromString(@"UITableViewCellDeleteConfirmationView")]) {
            NSArray *array = @[@"icon_mp_dete",@"icon_mp_fz",@"icon_mp_tele",@"icon_mp_message"];
            for(int i=0; i<4; i++){
                UIView *btnView = subView.subviews[i];
                btnView.backgroundColor = HEX_COLOR(@"afb6c1");
                for (UIView *btn in btnView.subviews) {
                    UIImageView *imageview = [[UIImageView alloc] init];
                    imageview.contentMode = UIViewContentModeScaleAspectFit;
                    imageview.image = kImageWithName(array[i]);
                    imageview.frame = CGRectMake(0, 0, btn.frame.size.width, btn.frame.size.height);
                    [btn addSubview:imageview];
                }
            }
        }
    }
}


效果如下:



版权声明:本文为博主原创文章,未经博主允许不得转载。

ios——自定义tableviewcell左滑button

其实自定义tableviewcell左滑的button代码十分简单,一个方法就能搞定~,在需要用到左滑button的时候加入下面的方法即可使用: -(NSArray *)tableView:(U...
  • w582324909
  • w582324909
  • 2016年07月20日 17:44
  • 2222

简单方法实现 uitableviewcell 左滑出现各种自定义功能视图

一 先继承 tableviewcell 二
  • wjszf
  • wjszf
  • 2014年08月09日 11:27
  • 1435

TableView自定义左划多个按钮

iOS7前言苹果给开放的接口只有一个删除按钮,如果你想要像qq那样侧滑有多个按钮,就需要自己写。我用scrollview写了一个。仁者见仁,智者见智,我是用的这个。(考虑到iOS7,8以上都很简单了)...
  • github_30943901
  • github_30943901
  • 2016年05月19日 19:05
  • 1986

UITableView自定义左滑删除按钮(带图片)

转载请注明本文出自surfaceeee的博客(http://blog.csdn.NET/u010519146/article/details/42882635),请尊重他人的辛勤劳动成果,谢谢!本人一...
  • KurryGo
  • KurryGo
  • 2016年12月12日 11:24
  • 3254

TableViewCell之左滑多个按钮

1.默认样式为左滑出现删除按钮,需要实现以下两个方法: - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editi...
  • sinat_25544827
  • sinat_25544827
  • 2015年02月05日 20:08
  • 2916

tabviewcell 左滑 自定义按钮

-(NSArrayUITableViewRowAction *>*)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(N...
  • hanlinbin521
  • hanlinbin521
  • 2016年08月15日 16:26
  • 373

UITableViewCell左滑button的定制

如果你重写了tableView: commitEditingStyle: forRowAtIndexPath:函数,那么UITableViewCell在非编辑状态从右向左侧滑,右边会出现红色的“删除”...
  • lyqfly07
  • lyqfly07
  • 2015年11月24日 15:28
  • 1302

iOS之tableView左划显示多个按钮(适配iOS11)

效果1是基于系统原生的左划出现多个按钮的效果.
  • luochuanAD
  • luochuanAD
  • 2017年01月13日 10:58
  • 1201

UITableView左滑出现多个按钮

UITableView左滑出现多个按钮
  • lvdezhou
  • lvdezhou
  • 2015年11月09日 15:05
  • 2146

swift中UITableView的使用(左滑多按钮)

github学习地址:https://github.com/potato512/SYSwiftLearning 效果图 源码 // MARK: - 数据 func set...
  • potato512
  • potato512
  • 2016年11月04日 16:38
  • 986
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS左滑插入多个按钮,按钮自定义颜色、图片、文字字体等
举报原因:
原因补充:

(最多只允许输入30个字)