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];
                }
            }
        }
    }
}


效果如下:



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

相关文章推荐

自定义iOS7导航栏背景,标题和返回按钮文字颜色

在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem 更改导航栏...
  • mad1989
  • mad1989
  • 2014年11月26日 16:22
  • 186129

自定义iOS7导航栏背景,标题和返回按钮文字颜色

在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem 更改导航栏的背景...
  • rabewu
  • rabewu
  • 2015年04月16日 17:08
  • 404

自定义iOS导航栏背景,标题和返回按钮文字颜色

在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem 更改导航栏...

ios之自定义导航栏背景,标题和返回按钮文字颜色

在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem 更...

iOS 7+自定义导航栏背景,标题和返回按钮文字颜色

在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem  ...

自定义iOS7导航栏背景,标题和返回按钮文字颜色

原文:http://blog.csdn.net/mad1989/article/details/41516743 目录(?)[+] 目录(?)[+] 在iOS7下,...

iOS心得7 按钮的图片和文字自定义位置

今天给大家看一下按钮的自定义效果 通常我们的需要效果如果有图有字的话,我们基本上都是使用uibutton这个控件。但是系统自带的效果是左图右字。如果你需要上图下字或者上字下图这种效果就需要自己去写。...

IOS开发中如何自定义导航栏的按钮,文字和背景图片

在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem 更改导航栏的背景和文字...

IOS学习 NSNavigationController 自定义:左右按钮、中间文字、背景图片

@implementation HomeViewController - (void)viewDidLoad {     [super viewDidLoad];     // Do an...
  • ridxmc
  • ridxmc
  • 2016年03月17日 16:45
  • 779

点击编辑按钮后,如何动态改变自定义spinner内字体颜色

关键代码已加粗,功能主要是点击详细界面,能够看到基本信息,在此activity不能修改;当点击了编辑按钮,可以使spinner内字体颜色变为黑色 代码如下: 点击编辑时: case R.id.ed...
  • zsn112
  • zsn112
  • 2015年06月15日 15:17
  • 709
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS左滑插入多个按钮,按钮自定义颜色、图片、文字字体等
举报原因:
原因补充:

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