UITableViewCell左滑(多操作)

前言

UITableView应该是所有iOSAPP中使用频率最多的UI控件,往往定制各式各样的UITableViewCell就成了程序比较重要的地方,这里我们来介绍下UITableViewCell左滑定制多项操作的一种实现手法,我们先看看qq消息界面的这张截图

UITableViewCell左滑(多操作)_第1张图片
WeChat_1470902601.jpeg

我说了这么多,其实就是想说这个效果

实现

UITableView的创建等等我们就不多做赘述了,实现数据源的代理方法等等,这里我们要介绍实现一个iOS8.0出的一个方法

- (nullable NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(8_0) __TVOS_PROHIBITED;

这个方法就能变相的实现上述的效果,我们来看看具体的代码

-(NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewRowAction * action = [UITableViewRowAction rowActionWithStyle:0 title:@"操作1" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
        NSLog(@"操作1---索引:%ld",indexPath.row);
    }];
    action.backgroundColor = [UIColor lightGrayColor];
    
    UITableViewRowAction * action1 = [UITableViewRowAction rowActionWithStyle:0 title:@"操作2" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
        NSLog(@"操作2---索引:%ld",indexPath.row);
    }];
    action1.backgroundColor = [UIColor blueColor];
    
    UITableViewRowAction * action2 = [UITableViewRowAction rowActionWithStyle:0 title:@"操作3" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
        NSLog(@"操作3---索引:%ld",indexPath.row);
    }];
    action2.backgroundColor = [UIColor redColor];
    
    return @[action,action1,action2];
}

你没有看错,就这一个方法就能实现如下图的效果

UITableViewCell左滑(多操作)_第2张图片
WeChat_1470903662.jpeg

我们点击来看看点击的log情况

UITableViewCell左滑(多操作)_第3张图片
WeChat_1470903913.jpeg

这样我们就可以拿到相应索引cell侧滑按钮的点击事件,再进行相应的操作就能实现一些简单的效果

最后

这里只是简单介绍了一下这种变通的实现方式,但是像qq那种每个侧滑出来的模块按钮大小不一样目前不知道如何实现的,看了网上的帖子有的是要用到收拾,或者去自定义按钮什么的,github上也有很多左滑又划的牛逼框架,今天的分享就到这里吧
我是iOS开发的小菜鸡,希望能成长为一直雄鹰
旅途很长,还需修行
ps:公司app改版,又要忙碌起来了,加油

你可能感兴趣的:(UITableViewCell左滑(多操作))