iOS陆哥开发笔记(十二) (tableViewCell侧滑显示多个按钮)
2016-04-14 17:41
465 查看
平常中所用的tableViewCell,左滑后,编辑状态只有一个删除按钮,现在很多APP上面都自定义实现了cell侧滑自定义编辑按钮,比如qq,微信侧滑后有“消息置顶”、“标记为未读”等。
话不多说, 代码如下:
- (NSArray *)tableView:(UITableView *)tableView
editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
// 添加一个删除按钮
UITableViewRowAction *deleteRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"删除"handler:^(UITableViewRowAction *action, NSIndexPath *indexPath)
{
NSLog(@"点击了删除");
// 1. 更新数据
NSMutableArray *arrModel = self.dataSource[indexPath.section];
[arrModel removeObjectAtIndex:indexPath.row];
// 2. 更新UI
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}];
// 删除一个置顶按钮
UITableViewRowAction *topRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"置顶"handler:^(UITableViewRowAction *action, NSIndexPath *indexPath)
{
NSLog(@"点击了置顶");
// 1. 更新数据
[self.dataSource exchangeObjectAtIndex:indexPath.row withObjectAtIndex:0];
// 2. 更新UI
NSIndexPath *firstIndexPath = [NSIndexPath indexPathForRow:0 inSection:indexPath.section];
[tableView moveRowAtIndexPath:indexPath toIndexPath:firstIndexPath];
}];
topRowAction.backgroundColor = [UIColor blueColor];
// 添加一个更多按钮
UITableViewRowAction *moreRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"更多"handler:^(UITableViewRowAction *action, NSIndexPath *indexPath)
{
NSLog(@"点击了更多");
[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationMiddle];
}];
moreRowAction.backgroundEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
// 将设置好的按钮放到数组中返回
return @[deleteRowAction, topRowAction, moreRowAction];
}
效果图:
效果图:
话不多说, 代码如下:
- (NSArray *)tableView:(UITableView *)tableView
editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
// 添加一个删除按钮
UITableViewRowAction *deleteRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"删除"handler:^(UITableViewRowAction *action, NSIndexPath *indexPath)
{
NSLog(@"点击了删除");
// 1. 更新数据
NSMutableArray *arrModel = self.dataSource[indexPath.section];
[arrModel removeObjectAtIndex:indexPath.row];
// 2. 更新UI
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}];
// 删除一个置顶按钮
UITableViewRowAction *topRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"置顶"handler:^(UITableViewRowAction *action, NSIndexPath *indexPath)
{
NSLog(@"点击了置顶");
// 1. 更新数据
[self.dataSource exchangeObjectAtIndex:indexPath.row withObjectAtIndex:0];
// 2. 更新UI
NSIndexPath *firstIndexPath = [NSIndexPath indexPathForRow:0 inSection:indexPath.section];
[tableView moveRowAtIndexPath:indexPath toIndexPath:firstIndexPath];
}];
topRowAction.backgroundColor = [UIColor blueColor];
// 添加一个更多按钮
UITableViewRowAction *moreRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"更多"handler:^(UITableViewRowAction *action, NSIndexPath *indexPath)
{
NSLog(@"点击了更多");
[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationMiddle];
}];
moreRowAction.backgroundEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
// 将设置好的按钮放到数组中返回
return @[deleteRowAction, topRowAction, moreRowAction];
}
效果图:
效果图:
相关文章推荐
- iOS开发之MBProgressHUD的使用
- iOS 项目审核悲剧原因
- iOS陆哥开发笔记(十一) (容易造成循环引用的三种场景)
- iOS陆哥开发笔记(十) (iOS设计模式—单例模式)
- ios7之后的动画
- iOS开发小技巧--键盘处理以及解决block造成循环引用的小技巧
- iOS陆哥开发笔记(九) (SDWebImage简单使用)
- iOS - 加速计(重力感应)
- iOS陆哥开发笔记(八) (GCD死锁及解决方案)
- iOS陆哥开发笔记(七) (AVFoundation简介)
- IOS加速审核 24小时通过 100% 成功
- iOS陆哥开发笔记(六) (cocoaPod的简单使用)
- iOS彩票项目--第六天,运用MVC思想搭建设置界面(非storyboard方法)
- iOS陆哥开发笔记(五) (地图定位之官方API)
- iOS label的文字显示不同的颜色
- iOS runtime字典转模型
- 收藏的iOS技术站点汇总(持续更新ing)
- iOS内购
- ios绘图讲解
- iOS 语音读文字so easy