IOS cell左滑出现多个功能按钮(IOS8以后支持)

#import "ViewController.h"
#import "Swift_OC-Swift.h"

@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>
@property (weak, nonatomic) IBOutlet UITableView *tableView;
@property(nonatomic,strong)NSMutableArray *dataSource;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.dataSource = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",nil];
    self.tableView.delegate = self;
    self.tableView.dataSource = self;

    //    Swift *swift = [[Swift alloc]init];
    //    //OC调用swift方法("Swift_OC-Swift.h")
    //    [swift demoFunction];
    //    //swift调用OC方法(Swift_OC-Bridging-Header)
    //    [swift swiftFetctionObjectC];
}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
   return self.dataSource.count;
}

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
    if (!cell) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
    }
    cell.textLabel.text = self.dataSource[indexPath.row];
    return cell;
}

/////////////////下面实现相关代码////////////////////////////
-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
    return YES;
}

//返回IOS8之前只能返回一个按钮
//- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
//{
//    return UITableViewCellEditingStyleDelete;
//}
//
//-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
//
//    if (editingStyle ==UITableViewCellEditingStyleDelete) {
//        [self.dataSource removeObjectAtIndex:indexPath.row];
//        [self.tableView deleteRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationAutomatic];
//    }
//}

//IOS8以后可以返回多个按钮
- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{

    //设置删除按钮
    UITableViewRowAction *deleteRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"删除" handler:^(UITableViewRowAction *action,NSIndexPath *indexPath) {
        [self.dataSource removeObjectAtIndex:indexPath.row];
        [self.tableView deleteRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationAutomatic];
    }];

    //设置收藏按钮
    UITableViewRowAction *collectRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"收藏" handler:^(UITableViewRowAction *action,NSIndexPath *indexPath) {
        NSLog(@"收藏了");
    }];

    //设置置顶按钮
    UITableViewRowAction *topRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"置顶" handler:^(UITableViewRowAction *action,NSIndexPath *indexPath) {
        [self.dataSource exchangeObjectAtIndex:indexPath.row withObjectAtIndex:0];
        NSIndexPath *firstIndexPath = [NSIndexPath indexPathForRow:0 inSection:indexPath.section];
        [tableView moveRowAtIndexPath:indexPath toIndexPath:firstIndexPath];
    }];

    //设置置顶按钮
    UITableViewRowAction *testRowAction1 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"测试1" handler:^(UITableViewRowAction *action,NSIndexPath *indexPath) {
        NSLog(@"测试1");
    }];
    UITableViewRowAction *testRowAction2 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"测试2" handler:^(UITableViewRowAction *action,NSIndexPath *indexPath) {
        NSLog(@"测试2");
    }];
    UITableViewRowAction *testRowAction3 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"测试2" handler:^(UITableViewRowAction *action,NSIndexPath *indexPath) {
        NSLog(@"测试3");
    }];
    collectRowAction.backgroundEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
    topRowAction.backgroundColor = [UIColor blueColor];
    collectRowAction.backgroundColor = [UIColor grayColor];

    //经测试可以返回无限个....
    return  @[deleteRowAction,collectRowAction,topRowAction,testRowAction1,testRowAction2,testRowAction3];
}

效果图:

时间: 2024-10-10 08:25:01

IOS cell左滑出现多个功能按钮(IOS8以后支持)的相关文章

iOS UITableView左滑操作功能的实现(iOS8-11)

WeTest 导读 本文主要是介绍下iOS 11系统及iOS 11之前的系统在实现左滑操作功能上的区别,及如何自定义左滑的标题颜色.字体大小. 一.左滑操作功能实现 1.如果左滑的时候只有一个操作按钮,可以使用如下三个delegate方法来实现: 2.如果左滑有一个或多个操作按钮,iOS8-10 可使用如下两个delegate 3.iOS 11之后,tableView的delegate增加了两个方法,用来取代editActionsForRowAtIndexPath方法,如下: 在2和3中,如果是

iOS项目开发小技巧 (三) --UITableView实现Cell左划删除等自定义功能

今天来介绍下iOS开发中UITableView的Cell左划实现微信中置顶,删除等功能.该功能在iOS8.0以前是需要很复杂的实现,不过github上应该有现成demo,不过今天介绍的是在iOS8.0以后苹果新推出的api,来实现Cell左划自定义控件. 1. 首先创建UITableView视图,实现其俩个代理,UITableViewDelegate和UITableViewDataSource,该处代码就不说了,主要是俩个回调方法 -(UITableViewCell *)tableView:(U

iOS开发--左滑返回手势失效

在UINavigationBar中设置了leftBarbuttonItem此时系统自带的左滑手势失效,应该如何开启? self.navigationController.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>)self;

android 左滑删除控件,仿ios的左滑

GitHub地址:https://github.com/weileng11/SwipeRecyclerView-master 自定义的思路: 可以使用 HorizontalScrollView 控件,但是需要判断滑动距离,点击取消左滑的控件. 原文地址:https://www.cnblogs.com/IT-lss/p/10731757.html

关于UITableViewCell左滑显示多个功能的实现

1.问题描述如图: 2.ios8之前的实现方式是自己码,但是ios8之后如图:

tableview左滑按钮 tableviewcell自定义左滑按钮

当我们在使用tableview时,往往需要在cell左滑时显示一个或是多个按钮,但系统默认的只可显示一个,如常见的删除按钮,那么当我们的需求要求要有多个按钮时又该怎么办呢,我们往下看. 首先,现看看系统的按钮(只显示一个按钮时) //设置cell左滑后的删除按钮文字 -(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)ind

黑暗料理一之修改UITableViewCell左滑删除按钮的样式和自定义

在日常开发中我们可能会遇到需要自定义UITableViewCell左滑删除按钮的样式,网上也有许多自定义的第三方,但是都太重量级了,应为我们可能我们的需求很小,也不想大动干戈的导入一个第三方,然后设置各种一大堆属性,太麻烦了,那么怎么来修改系统自带的呢? 可能你说不能修改,万是不是绝对的,我们有神器reveal,作为一名iOS程序猿,如果你连reveal都不知道或不会用的话你就太low了,OK,我们开始我们的黑暗料理. 首先我们来看reveal下UITableViewCell左滑按钮的层级关系,

UITableViewCell左滑的时候添加多个按钮的方法(iOS8+)以及UIRefreshControl(iOS6+)的使用。

之前想在cell左滑的时候添加更多的按钮而不是只有‘删除’按钮如下所示,貌似不是一件简单的事.但是现在只要实现几个方法就行了. 代码写的比较垃圾,重在理解这个知识.. . 具体代码: // //  TableViewController.m //  ios8_tableview(左滑添加按钮) // //  Created by mudy on 15/8/21. //  Copyright (c) 2015年 mudy. All rights reserved. // #import "Tabl

UITableViewCell左滑显示按钮菜单

http://blog.jobbole.com/67272/ 编辑模式下左滑可以显示DELETE按钮.如何可以自定义左滑显示的按钮呢? 整体思路 1.自定义UITableViewCell,并为其contentView添加左滑时希望显示的按钮. 2.在contentView上添加一个相同大小subView,作为正常情况下tableViewCell显示的内容. 3.为此subView添加pan事件,滑动的时候移动其位置,使按钮可以显示出来. 需要注意的问题 具体实现(仿微信效果) 新建自定义的Tab