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>  

实现效果如下图所示:


相关文章推荐

UITableViewCell左滑button的定制

如果你重写了tableView: commitEditingStyle: forRowAtIndexPath:函数,那么UITableViewCell在非编辑状态从右向左侧滑,右边会出现红色的“删除”...

[iOS]UITableView滑动删除按钮样式改变

[iOS]UITableView滑动删除按钮样式改变 本文产生因由: 如图[默认样式],当cell中包含间隔区域时,使用系统默认滑动删除样式,会发现删除按钮会占位间隔区。 #impo...

ios 设置tableview左滑删除按钮的相关属性

自定义cell时在layoutSubviews处理 - (void)layoutSubviews {     [super layoutSubviews];     [self de...

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

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

iOS集成极光推送,绕过一些坑

iOS集成极光推送,绕过一些坑 2016-02-26 06:18 编辑: 糖醋排骨 分类:iOS开发 来源:Tate_zwt 投稿 9 6653 iOS开发iOS极光推送...

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

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

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

以下是要实现的效果:

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

老规矩先看效果图: 这个代码很常见,网上大牛已经做过好几遍了,但是本着学习的态度,去研究了下别人写的代码。发现有好几种实现方法。最为流行的一种是使用Scroller实现滑动,然后按钮的实现有三种方法...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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