IOS UI学习 UITableView ----- UITableViewDataSource
UITableView简介
文字简介
UITableView派生自UIScrollView
UITableView结构如下:
背景是滚动视图,每个横向的表格称为cell ( UITableViewCell )
每一个 cell 既可以存储数据,也可以接受选中的事件,
我们选中某个cell时,可以下拉列表,可以推出新的页面
在编辑模式选中多个cell,可以批量删除等。
设置UITableView表头和表尾
- (void)ceateTitle
{
UILabel * label1 = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 30)];
label1.text = @"这里是表头,不是标头";
label1.textAlignment = NSTextAlignmentCenter;
label1.backgroundColor = [UIColor cyanColor];
//设置表头
_tableV.tableHeaderView = label1;
UILabel * label2 = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 60)];
label2.text = @"这里是表尾,不是彪尾";
label2.textAlignment = NSTextAlignmentCenter;
label2.backgroundColor = [UIColor cyanColor];
//设置表尾
_tableV.tableFooterView = label2;
}
成员变量
1 { 2 UITableView * _tableV; 3 NSMutableArray * _dataArr; 4 UISearchController * _search; 5 NSMutableArray * _selectCell; 6 }
UITableView创建
UITableView创建 (写在方法中,可用 self 调用)
-(void)createTableView
{
_tableV = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height-64) style:UITableViewStyleGrouped];
//设置UITableView风格 两种风格
/*
UITableViewStylePlain,
UITableViewStyleGrouped
*/
//设置代理
_tableV.delegate = self;
_tableV.dataSource = self;
_tableV.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
[self.view addSubview:_tableV];
}
这个怎么分类 UIViewController生命周期方法 用于响应视图编辑状态变化
-(void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing:editing animated:animated];
[_tableV setEditing:editing animated:animated];
}
UITableViewDataSource 协议方法
设置 UITableView cell (required)
通常自己新建一个新的类通过继承于UITableViewCell来定制新的cell
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//重定位符
static NSString * str = @"cell";
//取出队列中的cell
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:str];
//如果cell为null ,则创建新的cell
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:str];
}
cell.textLabel.text = _dataArr[indexPath.row];
return cell;
}
设置 UITableView 分区(section)的cell的数目 (required)
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
//return [[_dataArr objectAtIndex:section] count];
return _dataArr.count;
}
设置 UITableView 分区 (section)的数目 (optional)
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView; // Default is 1 if not implemented
{
return 1;
}
设置 UITableView title header (optional)
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return @"title";
}
设置 UITableView title footer (optional)
-(NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
return @"footer title";
}
设置 滑动cell时 cell 右端是否出现 delete 按钮
-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
设置UITableView的编辑状态
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath
{
}
返回索引数组
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
if (_tableView == tableView)
{
NSMutableArray * arr = [[NSMutableArray alloc]init];
//[arr addObject:UISearchBarIconSearch];
for (int i = 0; i < 26; i++)
{
NSString * str = [NSString stringWithFormat:@"%c",'A' + i];
[arr addObject:str];
}
return arr;
}
else
{
return nil;
}
}
未完待续。

浙公网安备 33010602011771号