您的位置:首页 > 移动开发 > IOS开发

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];

}

效果图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: