UITableView多选删除,类似mail中的多选删除效果
无废话,直接上代码
// 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