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

来源:未知 责任编辑:责任编辑 发表时间:2014-01-20 07:52 点击:

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

	
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Lexical or Preprocessor Issue 'xxx.h
  • ios学习笔记(二)xcode 4.3.2下实现基本交互
  • ios版本的helloworld
  • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
  • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
  • UITableView一些方法
  • IOS类似iphone通讯录TableView的完整demo【附源码】
  • [iPhone中级]iPhone团购信息客户端的开发 (二)
  • iphone(object-c)内存管理(1)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1