本节学习内容:
1.UITableView高协议介绍
2.UITableView高级协议的功能
3.UITableView高级协议的使用
commitEditingStyle:提交编辑函数
canEditRowAtIndexPath:开启关闭编辑单元格
editing|StyleForRowAtIndexPath:编辑单元格峁格设定
didSelectRowAtIndexPath:选中单元格响应协议
didDeselectRowAtIndexPath:返选单元格响应协议
【ViewController.h】
#import
@interface ViewController:UIViewController
//数据视图
UITableView* _tableView;
//数据源
NSMutableArray* _arrayData;
//添加导航按钮
UIBarButtonItem* _btnEdit;
UIBarButtonItem* _btnFinish;
UIBarButtonItem* _btnDelete;
//设置编辑状态
BOOL _isEdit;
}
【ViewController.m】
#import "viewController.h"
@interface Viewcontroller()
@end
@implementation viewController
-(void)viewDidLoad{
[super viewDidLoad]
_tableView=[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStylePlain];
//自动调整子视图的大小
_tableView.autoresizingMask=UIViewAutoresizingFlexBleHeight]UIViewAutoresizingFlexibleWidth;
//设置代理
_tableView.delegate=self;
_tableView.dataSorce=self;
//数据视图的头部视图的设定
_tableView.tableHeaderView=nil;
//数据视图的尾部视图的设定
_tableView.tableFooterView=nil;
[self.view addSubview:_tableView];
//初始化数据源数组
_arrayData=[[NSMutableArray alloc]init];
for(init i=1;i<20;I++){
NSString* str=[NSString stringWithFormat:@"A %d",i];
[_arrayData addObject:str];
}
//当数据的数据源发生变化时更新数据视图,从新加载数据
[_arrayData reloadData];
}
-(void)createBtn{
//创建功能按钮
_isEdit=NO;
_btnEdit=[[UIBarButtonIten alloc] initWithTitle:@"编辑" style:UIBarButtonItemStylePlain target:self action:@selector(pressEdit)];
_btnFinish=[[UIBarButtonItem alloc] initWithTitle:@"完成" style:UIBarButtonItemStylePlain target:self action:@selector(pressFinish)];
_btnDelete=[[UIBarButtonItem alloc]initWithTitle:@"删除" style:UIBarButtonItemStylePlain target:self action:@selector(pressDelete)];
slef.navigationItem.leftBarButtonItem=_btnEdit;
}
-(void)pressEdit{
_isEdit=YES;
//导航栏右侧按钮置为完成
self.navigationItem.rightBarButtonItem=_btnFinish;
[_tableView setEditing:YES];
//导航栏左侧按钮置为删除
self.navingationItem.leftBarButtonItem=_btnDelete;
}
-(void)pressFinish{
_isEdit=NO;
//导航栏右侧按钮置为完成
self.navigationItem.rightBarButtonItem=_btnEdit;
[_tableView setEditing:NO];
//导航栏左侧按钮为空
self.navigationItem.leftBarButtonItem=_nil;
}
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
NSString* strID=@"ID";
/.尝试获取可以复用的单元格,如果得不到,返回Nil
UITableViewCell* cell=[_tableView dequeReusableCellWithIdentifier:strID];
if(cell == nil){
cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:strID];
}
//单元格文字赋值
cell.textLable.text=[_arrayDate ObjectAtIndex:indexPath.row];
//设置子标题
cell.detailTextLable.text=@"子标题";
NSString* str=[NSString stringWithFormat:@"%ld.png",indexPath.row%7+1];
UIImage* image=[UIImage imageNamed:str];
//UIImageView iView=[[UIImageView alloc]initWithImage:image];
//设置默认图标信息
cell.imageView.image=image;
returen cell;
}
//单元格高度
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 60;
}
【AppDelegate.m】
#import "AppDelegate.h"
#import "ViewController.h"
@interface AppDelegate()
@end
@implementation AppDelegate
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
self.window=[[UIWindow alloc] initWithFrame:[UIScreen aminScreen].bounds];
UINavigationController* nav=[[UINavigationController alloc]initWithRootViewController:[[ViewController alloc]init]];
self.window.rootViewController=nav;
return YES;
}