• iOS-UITableView(一)


    一、UITableView
    1.数据展示的条件
    1> UITableView的所有数据都是由数据源(dataSource)提供的,所以要想在UITableView展示数据,必须设置UITableView的dataSource数据源对象
    2> 要想当UITableView的dataSource对象,必须遵守UITableViewDataSource协议,实现相应的数据源方法
    3> 当UITableView想要展示数据的时候,就会给数据源发送消息(调用数据源方法),UITableView会根据方法返回值决定展示怎样的数据
    
    2.数据展示的过程
    1> 先调用数据源的
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    得知一共有多少组
    
    2> 然后调用数据源的
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    得知第section组一共有多少行
    
    3> 然后调用数据源的
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    得知第indexPath.section组 第indexPath.row 行显示怎样的cell(显示什么内容)
    
    3.常见数据源方法
    1> 一共有多少组
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    
    2> 第section组一共有多少行
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    
    3> 第indexPath.section组 第indexPath.row行显示怎样的cell(显示什么内容)
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    
    4> 第section组显示怎样的头部标题
    - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;
    
    5> 第section组显示怎样的尾部标题
    - (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section;
    
    4.tableView刷新数据的方式
    1> 修改模型数据
    
    2> 刷新表格
    * reloadData 整体刷新(每一行都会刷新)
    * - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
    局部刷新
    
    5.性能优化
    1> 定义一个循环利用标识
    static NSString *ID = @"C1";
    
    2> 从缓存池中取出可循环利用的cell
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    
    3> 如果缓存池中没有可循环利用的cell
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
    }
    
    4> 覆盖cell上面的数据
    cell.textLabel.text = [NSString stringWithFormat:@"第%d行数据", indexPath.row];
  • 相关阅读:
    CSS 图像左右对齐
    CSS 图像居中对齐
    CSS 图像大小
    CSS表单3 光标样式 (每个位置鼠标放上去的样式不同)
    CSS表单2 组件排版
    对于下一代互联网的畅想
    VMware nat可以 桥接不可以
    jsp 入门
    flask_whooshalchemyplus 搜索
    PasswordField 无法设置默认值
  • 原文地址:https://www.cnblogs.com/DarbyCJ/p/3653089.html
Copyright © 2020-2023  润新知