当前位置:编程学习 > wap >>

ios UITableView实现单击提示,滑动删除,多选行等操作

demo功能:ios UITableView实现单击提示,滑动删除,多选行等操作。iphone 6.1测试通过。

demo说明:DeleteMeController.m;CheckListController.m这些都是用UITableView实现的效果代码。

demo截屏:

   

\  \  \

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  

#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

 

补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,