iOS小明开发笔记(九) (tableViewCell侧滑显示多个按钮)
2016-02-23 12:40
567 查看
平常中所用的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海哥开发笔记 (海哥原创,iOS 之同步请求、异步请求、GET请求、POST请求 )
- ios海哥开发笔记 (海哥原创,iOS 之iOS 之NSIndexPath )
- ios海哥开发笔记 (海哥原创,iOS 之NSCoding )
- iOS软件安装图文教程(免证书)
- IOS系列——NStimer
- IOS比较常用的第三方组件及应用源代码(持续更新中)
- iOS海哥开发笔记 (海哥原创,NSCharacterSet 简单用法)
- ios海哥开发笔记 (海哥原创,iOS缓存机制NSUserDefaults)
- iOS开发——判断手机格式
- iOS海哥开发笔记 (海哥原创,iOS 通知NSNotificationCenter)
- iOS海哥开发笔记 (海哥原创,retain、strong、weak、assign区别)
- iOS小明开发笔记(八) (容易造成循环引用的三种场景)
- iOS开发之指纹识别
- iOS开发——判断邮箱格式
- iOS开发——MD5加密
- iOS小明开发笔记(七) (iOS设计模式—单例模式)
- iOS学习累积
- 请求数据返回值不能解析
- ios修改textField的placeholder的字体颜色和大小
- textfield监听删除按键 包括没有输入文字时(ios8 也可以使用)