iOS8新添加的左滑出现按钮组的方法

转载 2016年08月29日 16:21:14
 

iOS8新添加的左滑出现按钮组的方法 

 10人阅读 评论(0) 收藏 举报
 分类:
 

iOS8以后table view中添加了可以左滑出现按钮组的方法,如下图:


关于此方法的用法就直接上代码:

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <span style="font-size:14px;">#import "ViewController.h"  
  2.   
  3. @interface ViewController ()<UITableViewDataSource,UITableViewDelegate>  
  4. @property (strongnonatomicUITableView *myTableView;  
  5. @property (strongnonatomicNSMutableArray *dataArray;  
  6.   
  7. @end  
  8.   
  9. @implementation ViewController  
  10.   
  11. - (void)viewDidLoad {  
  12.     [super viewDidLoad];  
  13.   
  14.     self.dataArray = [NSMutableArray arrayWithObjects:@"孙悟空",@"唐僧",@"沙和尚",@"猪悟能",@"红孩儿",@"牛魔王",@"蜘蛛精",@"白骨精",@"宋江",@"鲁智深",@"李逵",@"武松",@"贾宝玉", nil nil];  
  15.     self.myTableView =[[UITableView alloc] initWithFrame:[UIScreen mainScreen].bounds style:UITableViewStylePlain];  
  16.     self.myTableView.dataSource  = self;  
  17.     self.myTableView.delegate = self;  
  18.     [self.view addSubview:self.myTableView];  
  19.     //右上角的编辑按钮  
  20.     self.navigationItem.rightBarButtonItem = self.editButtonItem;  
  21.   
  22.     // Do any additional setup after loading the view, typically from a nib.  
  23. }  
  24.   
  25. - (void)didReceiveMemoryWarning {  
  26.     [super didReceiveMemoryWarning];  
  27.     // Dispose of any resources that can be recreated.  
  28. }  
  29.   
  30.   
  31.   
  32. - (void)setEditing:(BOOL)editing animated:(BOOL)animated{  
  33.     [super setEditing:editing animated:animated];  
  34.     [self.myTableView setEditing:!self.myTableView.isEditing animated:YES];  
  35. }  
  36.   
  37.   
  38. #pragma mark - table view data source and delegate  
  39.   
  40. //多少个分区  
  41. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{  
  42.     return 1;  
  43. }  
  44.   
  45. //多少行  
  46. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{  
  47.     return self.dataArray.count;  
  48. }  
  49.   
  50. //行高  
  51. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{  
  52.     return 65.0f;  
  53. }  
  54.   
  55. //配置cell  
  56. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{  
  57.     static NSString *cellIdentifier = @"cellID";  
  58.     UITableViewCell *cell;  
  59.     cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];  
  60.     if (!cell) {  
  61.         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];  
  62.     }  
  63.     cell.textLabel.text = self.dataArray[indexPath.row];  
  64.       
  65.     return cell;  
  66. }  
  67.   
  68. //设置table view 为可编辑的  
  69. - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{  
  70.     return YES;  
  71. }  
  72.   
  73. //设置可编辑的样式  
  74. - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{  
  75.     return UITableViewCellEditingStyleDelete;  
  76. }  
  77.   
  78. //设置处理编辑情况  
  79. - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{  
  80.     if (editingStyle == UITableViewCellEditingStyleDelete) {  
  81.         //更新数据  
  82.         [self.dataArray removeObjectAtIndex:indexPath.row];  
  83.         //更新UI  
  84.         [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];  
  85.     }  
  86. }  
  87.   
  88. //设置可移动  
  89. - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath{  
  90.     return YES;  
  91. }  
  92.   
  93. //处理移动的情况  
  94. - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{  
  95.     //更新数据  
  96.     NSString *title = self.dataArray[sourceIndexPath.row];  
  97.     [self.dataArray removeObject:title];  
  98.     [self.dataArray insertObject:title atIndex:destinationIndexPath.row];  
  99.     //更新UI  
  100.     [tableView moveRowAtIndexPath:sourceIndexPath toIndexPath:destinationIndexPath];  
  101. }  
  102.   
  103.   
  104. #pragma mark - 返回按钮/处理按钮的点击事件  
  105. - (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{  
  106.       
  107.     //添加一个删除按钮  
  108.     UITableViewRowAction *deleteRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"删除" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {  
  109.         NSLog(@"点击了删除");  
  110.         //1.更新数据  
  111.         [self.dataArray removeObjectAtIndex:indexPath.row];  
  112.         //2.更新UI  
  113.         [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];  
  114.     }];  
  115.       
  116.     //添加一个更多按钮  
  117.     UITableViewRowAction *moreRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"更多" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {  
  118.         NSLog(@"点击了更多");  
  119.         [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationMiddle];  
  120.           
  121.     }];  
  122.     //添加一个置顶按钮  
  123.     UITableViewRowAction *topRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"置顶" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {  
  124.         NSLog(@"你点击了置顶按钮");  
  125.         NSString *title = [self.dataArray objectAtIndex:indexPath.row];  
  126.         [self.dataArray removeObject:title];  
  127.         [self.dataArray insertObject:title atIndex:0];  
  128.         [tableView reloadData];  
  129.     }];  
  130.       
  131.     moreRowAction.backgroundEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];  
  132.     //将设置好的按钮存放到数组中(按钮对象在数组中的索引从0到最多,在tableViewCell中的显示则是从右到左依次排列)  
  133.     return @[deleteRowAction,moreRowAction,topRowAction];  
  134. }</span><span style="color:#ff0000;font-size: 32px;">  
  135. </span>  

实现效果如下图所示:


UITableView小技巧--实现cell向左滑动删除,编辑等功能

一、简介 ios8.0之前只能定制左划的一个功能按键,若想要实现两个左划功能按键,却需要费一番功夫。自ios8.0之后,苹果推出新的api,来让开发者可以实现自定义左划控件。 二、初始化tablev...
  • u012072580
  • u012072580
  • 2016年02月24日 17:04
  • 8424

iOS UITableViewCell侧滑删除遇到的坑

做项目中遇到一个小问题,给大家分享一下 以前做删除是这样,实现UITableView的代理方法即可 // 设Cell编辑 - (BOOL)tableView:(UITableView *)tabl...
  • zouyunling1990
  • zouyunling1990
  • 2017年02月06日 10:54
  • 3804

(原创)iOS tableview系统左滑删除 左滑置顶 自定义左滑事件功能 输入框弹出

关于左滑删除这块,相信不少朋友都遇到过。UITableView自定一个左滑的按钮可以自定义,但是越来越多的需求左滑时要实现多个功能。iOS8之后系统实现了左滑自定多个实现的功能。 很简单,首先需要创建...
  • xmy0010
  • xmy0010
  • 2016年12月19日 17:23
  • 1454

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

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

UITableViewCell左滑动删除 和cell上按钮的点击事件

// //  ViewController.m //  UITableViewCell左滑动删除 // //  Created by XKDX.NET on 16/4/13. ...
  • iOSbird
  • iOSbird
  • 2016年04月15日 19:33
  • 4970

iOS8新添加的左滑出现按钮组的方法

iOS8以后table view中添加了可以左滑出现按钮组的方法,如下图: 关于此方法的用法就直接上代码: #import "ViewController.h" @interface V...
  • IOS_dashen
  • IOS_dashen
  • 2016年01月11日 16:05
  • 930

iOS8 table view添加左滑出现按钮组的方法

http://blog.csdn.net/ios_dashen/article/details/50497331  IOS8以后table view中添加了可以左滑出现按钮组的方法,如下图: ...
  • coloriy
  • coloriy
  • 2016年10月27日 14:45
  • 333

iOS8 TableViewCell滑动添加多个按钮

  • 2015年08月30日 22:05
  • 5KB
  • 下载

iOS8 数字键盘添加自定义按钮(兼容各个版本以及解决自定义按钮滑动出现的问题)

以下是要实现的效果:
  • u013623867
  • u013623867
  • 2014年11月03日 12:04
  • 1230

Android UI设计: 仿ios,仿qq实现Listview侧滑出现按钮

老规矩先看效果图: 这个代码很常见,网上大牛已经做过好几遍了,但是本着学习的态度,去研究了下别人写的代码。发现有好几种实现方法。最为流行的一种是使用Scroller实现滑动,然后按钮的实现有三种方法...
  • cq361106306
  • cq361106306
  • 2015年05月04日 22:45
  • 4295
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS8新添加的左滑出现按钮组的方法
举报原因:
原因补充:

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