iOS中给UITableView的侧滑删除增加多个按钮的实现方法
一.需求:
cell的侧滑删除默认只有一个删除按钮,给侧滑添加多个按钮,'删除','置顶','更多'.
二.实现说明:
1)我们在使用一些应用的时候,在滑动一些联系人的某一行的时候,会出现删除、置顶、更多等等的按钮,在iOS8之前,我们都需要自己去实现。但是到了iOS8,系统已经写好了,只需要一个代理方法和一个类就搞定了
2)iOS8的协议多了一个方法,返回值是数组的tableView:editActionsForRowAtIndexPath:方法,我们可以在方法内部写好几个按钮,然后放到数组中返回,那些按钮的类就是UITableViewRowAction
3)在UITableViewRowAction类,我们可以设置按钮的样式、显示的文字、背景色、和按钮的事件(事件在Block中实现)
4)在代理方法中,我们可以创建多个按钮放到数组中返回,最先放入数组的按钮显示在最右侧,最后放入的显示在最左侧
5)注意:如果我们自己设定了一个或多个按钮,系统自带的删除按钮就消失了.
三.代码实现:
-(NSArray*)tableView:(UITableView*)tableVieweditActionsForRowAtIndexPath:(NSIndexPath*)indexPath { //添加一个'删除'按钮 UITableViewRowAction*deleteRowAction=[UITableViewRowActionrowActionWithStyle:UITableViewRowActionStyleDestructivetitle:@"删除"handler:^(UITableViewRowAction*action,NSIndexPath*indexPath){ NSLog(@"点击了'删除'"); //1.更新数据 //2.更新UI //[tableViewdeleteRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationAutomatic]; }]; //添加一个'置顶'按钮 UITableViewRowAction*topRowAction=[UITableViewRowActionrowActionWithStyle:UITableViewRowActionStyleDefaulttitle:@"置顶"handler:^(UITableViewRowAction*action,NSIndexPath*indexPath){ NSLog(@"点击了'置顶'"); //1.更新数据 //2.更新UI //NSIndexPath*firstIndexPath=[NSIndexPathindexPathForRow:0inSection:indexPath.section]; //[tableViewmoveRowAtIndexPath:indexPathtoIndexPath:firstIndexPath]; }]; topRowAction.backgroundColor=[UIColorblueColor]; //添加一个'更多'按钮 UITableViewRowAction*moreRowAction=[UITableViewRowActionrowActionWithStyle:UITableViewRowActionStyleNormaltitle:@"更多"handler:^(UITableViewRowAction*action,NSIndexPath*indexPath){ NSLog(@"点击了'更多'"); [tableViewreloadRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationMiddle]; }]; moreRowAction.backgroundEffect=[UIBlurEffecteffectWithStyle:UIBlurEffectStyleDark]; //将设置好的按钮放到数组中返回 return@[deleteRowAction,topRowAction,moreRowAction]; }
相关阅读:
详解iOS开发中UITableviewcell顶部空白的多种设置方法
IOS中UITableView滚动到指定位置
以上所述是小编给大家介绍的Android中给UITableView的侧滑删除增加多个按钮的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!