我们可以看到,在iOS开发中,最常用的视图之一就是UITableview,如果可以把这个视图玩6了,其实好多的界面设计通过该视图就可以完成,下面是我总结一下,该视图常用的代理方法
1.第一步
该视图所在的控制器要遵守这两个协议 <UITableViewDataSource , UITableViewDelegate>
2.第二步
声明该变量
@property (nonatomic , strong)UITableView *addressTableView;
3.第三步
实例化,该视图对象,并进行设置
#pragma mark UITableviewDatasource
//获取该视图的组数
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
}
//获取每组有多少行数据 row-行
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
}
//索引表内容-(NSArray*)sectionIndexTitlesForTableView:(UITableView *)tableView
{//这儿返回的是你索引里的数据组合
}
//索引表与组之间的关联
-(NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{
//告诉我们一个段名和该段的序号
//我们需要返回一个对于索引表数组内容的序号
NSInteger sectionCount= x;x是个未知数,代表第几组
for (NSString *aAlpha in _sectionNameArray) {//_sectionNameArray代表数据对应的真实索引组合
if ([aAlpha isEqualToString:title]) {//title代表此刻右边索引,你所点击的那一个
return sectionCount;
}
sectionCount++;
}
return sectionCount;//返回你点击的那个索引在几组数据中对应的组头,对应的那个组数
}
//为cell赋值
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//这个方法为cell赋值,大概样子如下
static NSString *CellIdentifier = @"userCell";
NTAdressBookCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell){
cell = [[NTAdressBookCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.nameLab.text = oneUser.nickname;
cell.JobLab.text = oneUser.jobTitle;
cell.departLab.text = oneUser.department;
return cell;
}
//下面是选中某个cell执行的方法
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
}
//设置每个cell的高度,这个其实我们可以精确到某个组的某个row
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
}
//这个方法,我们可以为该视图的每个组设置一个标题,主要是,通讯录的a-z,缺点,不能自定义位置,大小
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
}
//因为以上方法的短板,我们可以用自定义组头视图
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
}
//有自定义组头视图,就有自定义组尾视图
- ( UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
}
//组头高度
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
}
//组尾高度
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
}
网友评论