UITableView多选删除,类似mail中的多选删除效果

来源:互联网 发布:网络棋牌炸金花骗局 编辑:程序博客网 时间:2024/04/29 15:26

无废话,直接上代码

//  DeleteMeController.h#import <Foundation/Foundation.h>@interface DeleteMeController : UITableViewController {    NSMutableArray *list;    NSMutableArray *removeList;}@property (nonatomic, retain) NSMutableArray *list;@property (nonatomic, retain) NSMutableArray *removeList;-(IBAction)toggleEdit:(id)sender;@end


 

//  DeleteMeController.m#import "DeleteMeController.h"@implementation DeleteMeController@synthesize list;@synthesize removeList;-(IBAction)toggleEdit:(id)sender {    [self.tableView setEditing:!self.tableView.editing animated:YES];        if (self.tableView.editing)                [self.navigationItem.rightBarButtonItem setTitle:@"Done"];    else    {        [self.navigationItem.rightBarButtonItem setTitle:@"Delete"];        if (self.removeList.count > 0) {            [self.list removeObjectsInArray:self.removeList];            [self.tableView reloadData];            [self.removeList removeAllObjects];        }    }}- (void)viewDidLoad {    if (list == nil)    {        NSString *path = [[NSBundle mainBundle] pathForResource:@"computers"                                                          ofType:@"plist"];        NSMutableArray *array = [[NSMutableArray alloc]                                  initWithContentsOfFile:path];        self.list = array;        [array release];    }    NSMutableArray *mutableArray = [[NSMutableArray alloc] init];    self.removeList = mutableArray;    [mutableArray release];    UIBarButtonItem *editButton = [[UIBarButtonItem alloc]                                   initWithTitle:@"Delete"                                   style:UIBarButtonItemStyleBordered                                   target:self                                   action:@selector(toggleEdit:)];    self.navigationItem.rightBarButtonItem = editButton;    [editButton release];        [super viewDidLoad];}- (void)dealloc {    [list release];    [removeList release];    [super dealloc];}#pragma mark -#pragma mark Table Data Source Methods- (NSInteger)tableView:(UITableView *)tableView  numberOfRowsInSection:(NSInteger)section {    return [list count];}- (UITableViewCell *)tableView:(UITableView *)tableView          cellForRowAtIndexPath:(NSIndexPath *)indexPath {        static NSString *DeleteMeCellIdentifier = @"DeleteMeCellIdentifier";        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:                             DeleteMeCellIdentifier];    if (cell == nil) {        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault                                        reuseIdentifier:DeleteMeCellIdentifier] autorelease];    }    NSInteger row = [indexPath row];    cell.textLabel.text = [self.list objectAtIndex:row];    return cell;}#pragma mark -#pragma mark Table View Data Source Methods//编辑样式-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{    return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;}//添加一项- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{    NSUInteger row = [indexPath row];    id addObject = [self.list objectAtIndex:row];    [self.removeList addObject:addObject];}//取消一项- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{    NSUInteger row = [indexPath row];    id deleteObject = [self.list objectAtIndex:row];    [self.removeList removeObject:deleteObject];}@end