ios UItableViewではクリックプロンプト、スライド削除、複数選択行などの操作を実現

3417 ワード

オリジナルの文章、転載は出典を明記してください:http://blog.csdn.net/donny_zhang/article/details/9717631
demo機能:ios UItableViewはクリックプロンプト、スライド削除、複数選択行などの操作を実現します.iPhone 6.1のテストに合格しました.
demoの説明:DeleteMeController.m;CheckListController.mこれらはいずれもUItableViewで実現した効果コードである.
demoスクリーンショット:
ios UITableView实现单击提示,滑动删除,多选行等操作_第1张图片   ios UITableView实现单击提示,滑动删除,多选行等操作_第2张图片   ios UITableView实现单击提示,滑动删除,多选行等操作_第3张图片
demoプライマリコード:
#import "DeleteMeController.h"

@implementation DeleteMeController
@synthesize list;
-(IBAction)toggleEdit:(id)sender {
	[self.tableView setEditing:!self.tableView.editing animated:YES];	
}
#pragma mark -
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
	if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
		// Initialization code
	}
	return self;
}

- (void)viewDidLoad {
	NSString *path = [[NSBundle mainBundle] pathForResource:@"computers" ofType:@"plist"];
	NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:path];
	self.list = array;
	
	UIBarButtonItem *editButton = [[[UIBarButtonItem alloc]
									initWithTitle:@"Delete"
									style:UIBarButtonItemStyleBordered
									target:self
									action:@selector(toggleEdit:)] autorelease];
	self.navigationItem.rightBarButtonItem = editButton;
	
	[super viewDidLoad];
}


#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] initWithFrame:CGRectZero 
									   reuseIdentifier:DeleteMeCellIdentifier] autorelease];
	}
	NSInteger row = [indexPath row];
	cell.text = [self.list objectAtIndex:row];
	return cell;
}

#pragma mark -
#pragma mark Table Delegate Methods
- (void)tableView:(UITableView *)tableView 
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath {
	
	NSUInteger row = [indexPath row];
	[self.list removeObjectAtIndex:row];
	[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] 
					 withRowAnimation:UITableViewRowAnimationFade];
}

@end

demoダウンロードアドレス:http://download.csdn.net/detail/donny_zhang/5858523