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

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

}

效果图:



效果图:

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