IOS开发UI篇------cell左滑多个按钮显示

在我们平时的应用软件中我经常会选中某一栏内容进行左滑进行一些操作设置,如图例所示:

IOS开发UI篇------cell左滑多个按钮显示_第1张图片
1.gif

1.在tableview的代理方法中 -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath可以实现cell左滑显示按钮操作,不过默认状态下左滑只有删除按钮并且默认是Delete字样
IOS开发UI篇------cell左滑多个按钮显示_第2张图片
2.gif

2.那么要是实现左滑多个按钮怎么去做呢? iOS8的协议多了一个方法, - (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath返回值是数组,通过UITableViewRowAction这个类创建按钮然后将多个按钮放到数组中

- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
 UITableViewRowAction *action0 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"删除" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
        
        [self.allcities removeObjectAtIndex:indexPath.row];
        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
        
        NSLog(@"点击了删除");
     
    }];
    UITableViewRowAction *action1 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"关注" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
        NSLog(@"点击了关注");
      // 收回左滑出现的按钮(退出编辑模式)
        tableView.editing = NO;
    }];
    UITableViewRowAction *action2 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"编辑" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
       
        NSLog(@"点击了编辑");
        
        tableView.editing = NO;
    }];
    return @[action0, action1, action2];
}

3.在UITableViewRowAction类中,UITableViewRowActionStyleNormal背景色默认是灰色,UITableViewRowActionStyleDefault = UITableViewRowActionStyleDestructive背景色默认是红色,在block代码块中可以进行相应的事件操作

IOS开发UI篇------cell左滑多个按钮显示_第3张图片
3.gif

4.按钮从左到右的显示顺序依次是添加按钮的先后顺序的倒序(最后添加的显示到最左面)

你可能感兴趣的:(IOS开发UI篇------cell左滑多个按钮显示)