• UITableView的学习笔记


    UItableView一种列表展示数据的视图,又叫数据视图。他是UIScrollView的子类,也可以实现UIScrollView相关协议,但是可能会对UITableView本身的协议函数的功能造成问题
    接下来分别讲解代理函数的功能和使用方式。


    1.实现代理

    需要实现两个代理:
    UITableViewDelegate :设置列表事件响应回调
    UITableViewDataSource  :设置列表展示数据


    2.协议的函数

    UITableView每组中的单元个数(必须实现)

    1. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)
    2. section {
    3. NSInteger number = [[_arrayData objectAtIndex:section] count];
    4. return number;
    5. }

    UITableView每个单元的对象(必须实现)

    1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:
    2. (NSIndexPath *)indexPath {
    3. NSString *str = @"cell";
    4. //复用单元格
    5. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:str];
    6. if (!cell) {
    7. cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
    8. reuseIdentifier:str];;//默认样式
    9. }
    10. cell.textLabel.text = _arrayData[indexPath.section][indexPath.row];
    11. //要求类型必须是UITableViewCellStyleSubtitle才能显示子标题
    12. cell.detailTextLabel.text = @"子标题";
    13. //左侧图片
    14. cell.imageView.image = [UIImage imageNamed:@""];
    15. return cell;
    16. }

    UITableView点击单元格回调

    1. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:
    2. (NSIndexPath *)indexPath {
    3. NSLog(@"%zd%zd",indexPath.section,indexPath.row);
    4. }

    3.设置区块个数

    UITableView设置区块个数。如果不实现这个函数,那么默认返回1 即只有一组数据

    1. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    2. return _arrayData.count;
    3. }

    4.单元格高度

    UITableView单元格高度

    1. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:
    2. (NSIndexPath *)indexPath {
    3. return 50;
    4. }

    5.每组头部标题文案

    UITableView每组头部标题文案

    1. - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:
    2. (NSInteger)section {
    3. return @"每组头部标题";
    4. }

    6.每组尾部标题文案

    UITableView每组尾部标题文案

    1. - (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:
    2. (NSInteger)section {
    3. return @"每组尾部标题";
    4. }

    7.每组头部高度

    UITableView每组头部高度

    1. - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:
    2. (NSInteger)section {
    3. return 40;
    4. }

    8.每组尾部高度

    UITableView每组尾部高度

    1. - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:
    2. (NSInteger)section {
    3. return 50;
    4. }

    9.取消选中

    UITableView取消选中的情况:例如先点击第一项再点击第二项,点击第二项时,取消选中第一项的状态。

    1. - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:
    2. (NSIndexPath *)indexPath {
    3. NSLog(@"取消选中%zd%zd",indexPath.section,indexPath.row);
    4. }

    3.UItableView的属性和函数

    1.数据视图的头部尾部视图:

    可以自定义视图,然后将自定义的视图作为数据视图的头部和尾部view

    1. _tableView.tableHeaderView = nil;
    2. _tableView.tableFooterView = nil;

    2.刷新数据视图

    当数据视图的数据发生变化的时候,需要重新加载数据更新视图

    [_tableView reloadData];

  • 相关阅读:
    供应商绩效管理:如何衡量以及衡量什么指标?
    【光学】基于matlab模拟光栅条纹投影生成
    第七章《Java的异常处理》第1节:异常的概念及处理方式
    xhEditor实现WORD粘贴图片自动上传
    Acwing 890. 能被整除的数
    win11 搭建Apache webdav 设置用户名密码 加密授权访问以及多个不同目录访问
    Maven 基础教程系列
    高保真神经网络音频编码器
    做自媒体视频剪辑必备辅助工具分享
    uniapp微信登陆
  • 原文地址:https://blog.csdn.net/htwhtw123/article/details/125459986