美文网首页
iOS UITableView基础

iOS UITableView基础

作者: Lambo316 | 来源:发表于2016-06-28 10:52 被阅读81次

    一、UITableView的创建

    UITableView *tabelView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];

    //Plain样式:分区头/分区尾会停靠在tableView头部和尾部

    //group样式:分区头/尾高度大于Plain样式时的高度,头尾不会停靠

    //行号 row  从0开始

    //分区 section  从0开始

    二、属性设置

    //设置每一行的高度,所有行的高度相等

    tabelView.rowHeight = 100;

    //设置分割线的颜色

    tabelView.separatorColor = [UIColor yellowColor];

    //设置分割线的样式

    tabelView.separatorStyle = UITableViewCellSeparatorStyleNone;

    //设置数据代理

    tabelView.dataSource = self;

    //设置其他相关代理

    tabelView.delegate = self;

    //注册cell类

    //告诉tableView cell中所有重用标识reuse,都使用这种cell

    //[UITableViewCell class]:不是创建,而是表示有这样的的类型的类

    [tabelView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"reuse"];

    三、方法实现

    //返回特定分区行数 -- section

    //tableView 默认有一个分区

    -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

    //返回每一行要显示的cell

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    {

    //当重用池中具有对应重用标识的cell时,返回重用池中的cell

    //如果没有,则返回nil;

    //当注册了标识对应的cell类后,重用池,会创建一个新的cell返回

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reuse”];

    //当没有注册的时候,则需判断

    if (cell == nil) {

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"reuse"];

    }

    }

    //返回分区数

    -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

    {

    return 5;

    }

    //返回指定row的行高

    -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

    //返回每一个分区头的标题

    -(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

    //返回指定分区头的高度

    -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

    //返回每一个分区尾的标题

    -(NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section

    //返回View做为分区头

    -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

    //返回View做为分区尾

    -(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section

    //cell被点击时响应的方法

    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

    //重新刷新页面

    [self.tableView reloadData];

    //读取数据

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"plist”];

    //通过分区号和行号获取对应的cell

    [tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)];

    //通过cell获取所在的分区号和行号

    [tableView indexPathForCell:(nonnull UITableViewCell *)];

    //获得右边的索引

    -(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView

    //返回一个分区头

    self.tableView.tableHeaderView= [self headerView];

    //消除没有显示的横杠

    self.tableView.tableFooterView= [[UITableView alloc]init];

    //点击弹起  选中弹起光影恢复原状

    [tableView  deselectRowAtIndexPath:indexPath  animated:YES];

    相关文章

      网友评论

          本文标题:iOS UITableView基础

          本文链接:https://www.haomeiwen.com/subject/jdltjttx.html