zoukankan      html  css  js  c++  java
  • 开发笔记-tableView展示数据常见设置

    1. 如何让tableView展示数据

      • 设置数据源对象
    2. self.tableView.dataSource = self;
      
      
      
      
      • 数据源对象要遵守协议
    3. @interface ViewController () <UITableViewDataSource>
      
      @end
      
      
      
      
      • 实现数据源方法
    4. // 多少组数据
      - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
      
      // 每一组有多少行数据
      - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
      
      // 每一行显示什么内容
      - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
      
      // 每一组的头部
      - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;
      
      // 每一组的尾部
      - (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
      
      
      
      

      tableView的常见设置


      // 设置每一行cell的高度
      self.tableView.rowHeight = 100;

      // 设置每一组头部的高度
      self.tableView.sectionHeaderHeight = 50;

      // 设置每一组尾部的高度
      self.tableView.sectionFooterHeight = 50;   ——>设置的每一行都是固定的

      // 设置分割线颜色
      self.tableView.separatorColor = [UIColor redColor];
      // 设置分割线样式
      self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
      // 设置表头控件
      self.tableView.tableHeaderView = [[UISwitch alloc] init];
      // 设置表尾控件
      self.tableView.tableFooterView = [UIButton buttonWithType:UIButtonTypeContactAdd];

      // 设置右边索引文字的颜色
      self.tableView.sectionIndexColor = [UIColor redColor];
      // 设置右边索引文字的背景色
      self.tableView.sectionIndexBackgroundColor = [UIColor blackColor];
    5.  
      tableViewCell的常见设置


      // 设置右边的指示样式
      cell
      .accessoryType = UITableViewCellAccessoryDisclosureIndicator;

      // 设置右边的指示控件
      cell
      .accessoryView = [[UISwitch alloc] init];

      // 设置cell的选中样式
      cell
      .selectionStyle = UITableViewCellSelectionStyleNone;
      // backgroundView优先级 > backgroundColor

      // 设置背景色
      cell
      .backgroundColor = [UIColor redColor];

      // 设置背景view   ——(可自定义背景图片)
      UIView *bg = [[UIView alloc] init];
      bg
      .backgroundColor = [UIColor blueColor];
      cell
      .backgroundView = bg;

      // 设置选中的背景view
      UIView *selectedBg = [[UIView alloc] init];
      selectedBg
      .backgroundColor = [UIColor purpleColor];
      cell
      .selectedBackgroundView = selectedBg;

      代理方法
    /**
     *  当选中一行的时候调用(点击)
     */
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
    //    XMGWine *wine = self.wineArray[indexPath.row];
    //    NSLog(@"点击了:%@", wine.name);
        NSLog(@"选中了:%zd", indexPath.row);
    }

    /**
     *  当取消选中一行的时候调用
     */
    - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        NSLog(@"取消选中了:%zd", indexPath.row);
    }
    /**
     *  在每一组的头部设置控件
     */
    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
    {
        return [UIButton buttonWithType:UIButtonTypeInfoDark];
    }
    /**
     *  在每一组的尾部设置控件
    */
    - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
    {
        return [[UISwitch alloc] init];
    }
    /**
     *  可以判断不同组设置不同的高度
    */
    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
    {
        if (section == 0) return 20;
        if (section == 1) return 50;
    }
     
    /**
     *  返回每个cell的高度(设置不同行不同高度)
     */
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if (indexPath.row % 2 == 0) {
            return 50;
        } else {
            return 100;
        }
    }
     
     ----Make by -LJW 转载请注明出处--- 
  • 相关阅读:
    jass 函数收集
    struts2注解 no Action mapped for namespace and …
    重新安装服务,报指定的服务已标记为删除的错误
    使用Hexo+ Github 建站 时 使用 hexo d 命令异常:You should configure deployment settings in _config.yml first! Available deployer plugins: git For more help, you can check the online docs: https://hexo.io/
    打包dll发布到nuget服务器
    中国电信SIP账号在FreePBX 13中的中继设置
    配置EPON家庭网关接入中国电信电话交换IP网络
    Laravel迁移(Migration)
    阿里云企业邮箱的POP3、SMTP、IMAP地址是什么?
    Centos 8 x86_64 Nginx + PHP 安装步骤
  • 原文地址:https://www.cnblogs.com/ljwiOS/p/5414910.html
Copyright © 2011-2022 走看看