在我们平时的应用软件中我经常会选中某一栏内容进行左滑进行一些操作设置,如图例所示:
1.在tableview的代理方法中
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
可以实现cell左滑显示按钮操作,不过默认状态下左滑只有删除按钮并且默认是Delete字样2.gif
2.那么要是实现左滑多个按钮怎么去做呢? iOS8的协议多了一个方法,
- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
返回值是数组,通过UITableViewRowAction这个类创建按钮然后将多个按钮放到数组中
- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewRowAction *action0 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"删除" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
[self.allcities removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
NSLog(@"点击了删除");
}];
UITableViewRowAction *action1 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"关注" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
NSLog(@"点击了关注");
// 收回左滑出现的按钮(退出编辑模式)
tableView.editing = NO;
}];
UITableViewRowAction *action2 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"编辑" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
NSLog(@"点击了编辑");
tableView.editing = NO;
}];
return @[action0, action1, action2];
}
3.在UITableViewRowAction类中,UITableViewRowActionStyleNormal
背景色默认是灰色,UITableViewRowActionStyleDefault = UITableViewRowActionStyleDestructive
背景色默认是红色,在block
代码块中可以进行相应的事件操作
4.按钮从左到右的显示顺序依次是添加按钮的先后顺序的倒序(最后添加的显示到最左面)
网友评论