iOS开发-两种方式添加cell的删除按钮

2017-09-14  本文已影响0人  DreamerForever

第一种方式:

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{        return YES;}- (NSArray*)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath

{

UITableViewRowAction *detele = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"删除" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {

self.popView = [[ZYFPopview alloc]initInView:[UIApplication sharedApplication].keyWindow tip:@"删除笔记?" images:(NSMutableArray*)@[] rows:(NSMutableArray*)@[@"删除"] doneBlock:^(NSInteger selectIndex) {

NSFileManager *manager=[NSFileManager defaultManager];

NSString *filepath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"notes.plist"];

if ([manager removeItemAtPath:filepath error:nil]) {

NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsPath = [path objectAtIndex:0];

NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"notes.plist"];

[self.notesDatas removeObjectAtIndex:indexPath.row];//bug

[self.notesDatas writeToFile:plistPath atomically:YES];

if (self.notesDatas.count==0) {

[self.tableView removeFromSuperview];//removeFromSuperview将视图从父视图上移开并且销毁,但是如果其他地方对他还有引用,只是移开了视图但是不会销毁

[self createimgeView];

}else{

[self.tableView reloadData];

}

}

} cancleBlock:^{

}];

[self.popView showPopView];

}];

detele.backgroundColor = [UIColor redColor];

return @[detele];

}

当然这种方式的可以添加多个按钮。

第二种方式:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{

return UITableViewCellEditingStyleDelete;

}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{

if (editingStyle == UITableViewCellEditingStyleDelete) {

FavoriteModel * model = self.dataSource[indexPath.row];

[FavoriteModel MR_deleteAllMatchingPredicate:[NSPredicate predicateWithFormat:@"pid=%@",model.pid]];

[self.dataSource removeObjectAtIndex:indexPath.row];

[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];

}

}

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{

return @"删除";

}

上一篇下一篇

猜你喜欢

热点阅读