美文网首页ios 程序猿FamilyiOS
项目总结之tableView的小细节

项目总结之tableView的小细节

作者: 9bf19a4010ab | 来源:发表于2016-09-26 20:43 被阅读393次

    一. 设置tableViewCell的系统样式都知道tableView的创建有两种方式第一种是注册 第二种是非注册形式的 首先收一下tableView的样式:
    UITableViewStylePlain和UITableViewStyleGrouped两种 至于两种tableView的样式大家可以自己来验证
    下面来谈谈tableViewCell的系统样式

    1. 注册的cell样式: cell只有textLabel一个属性 而且textLabel在最左侧
    2. 非注册的形式
      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reuse"];
      if (cell == nil) {
      cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"reuse"];
      }
      (1). UITableViewCellStyleDefault
      有属性 cell.imageView cell.textLabel 两个属性
      imageView在最左侧 label在imageView旁边 如下图所示


      3A486217-6BE5-4F88-8392-4333B62766C7.png

      (2). UITableViewCellStyleSubtitle
      有属性 cell.imageView cell.textLabel detailTextLabel 三个属性


      D43043F3-75FF-4914-A667-13A14BE672B4.png
      (3) UITableViewCellStyleValue1
      有属性 cell.imageView cell.textLabel detailTextLabel 三个属性
      0B580F7C-0D8B-4BDA-B5FA-CB08679F4432.png
      (4) UITableViewCellStyleValue2
      有属性 cell.textLabel detailTextLabel 两个属性
      2D425E3C-8C4C-4517-AE48-C2D0DB297399.png

    总结一下下 如果使用注册的方式创建tableView只有一个cell.textLabel一个属性 如果还需要其他的控件就需要自己取自定义cell

    二.关于tableView设置的一些小细节
    我们在创建tableView时候 常常会遇到各位各样影响UI效果的现象 比如tableViewCell之间的线 cell被选中时的状态...下面 我们就来总结一下这些小细节

    1. sectionHeaderHeight(sectionHeaderFooter) ------ 当tableView为UITableViewStyleGrouped时 设置分区头(尾)高度的属性
      // 2. 设置分割线的样式
      // self.tabelView.separatorStyle = UITableViewCellSeparatorStyleNone;
      // 3. cell选中时的样式
      // cell.selectionStyle
      // 4. 在tableView非编辑状态下是否可以选中 默认为yes
      // self.tabelView.allowsSelection
      // 5. 是否可以选中多行 默认为NO
      // self.tabelView.allowsMultipleSelection
      // 6. 选中多行时是否可以编辑 默认为NO
      // self.tabelView.allowsMultipleSelectionDuringEditing
      // 7. tableView头视图
      // self.tabelView.tableHeaderView
      // 8. 进入编辑模式
      // [self.tabelView setEditing:YES animated:YES];
      // 9. 获取某个组的头标签的位置和大小
      // [self.tabelView rectForHeaderInSection:<#(NSInteger)#>]
      // 10. 获取某一行的位置和大小
      // [self.tabelView rectForRowAtIndexPath:<#(nonnull NSIndexPath *)#>]
      // 11. 通过cell路径找到cell
      // cellForRowAtIndexPath
      // 12. 当添加或者删除cell时更新 (endUpdates)
      // beginUpdates

    // 13. 插入一个或者多个组使用动画 插入一个或者多个行 使用动画 有插入同样有delete
    // insertSections: withAnimation:
    // self.tabelView insertRowsAtIndexPaths:<#(nonnull NSArray<NSIndexPath *> *)#> withRowAnimation:<#(UITableViewRowAnimation)#>
    // 14. 更新cell或者section
    // self.tabelView reloadRowsAtIndexPaths:<#(nonnull NSArray<NSIndexPath *> *)#> withRowAnimation:<#(UITableViewRowAnimation)#>
    // self.tabelView reloadSections:<#(nonnull NSIndexSet *)#> withRowAnimation:<#(UITableViewRowAnimation)#>
    // 15. 移动section或者cell
    // self.tabelView moveRowAtIndexPath:<#(nonnull NSIndexPath *)#> toIndexPath:<#(nonnull NSIndexPath *)#>
    // self.tabelView moveSection:<#(NSInteger)#> toSection:<#(NSInteger)#>

    // 16. 返回选择的一个cell或多个路径
    // indexPathsForSelectRow
    // indexPathsForSelectRows
    // 17. 设置选中某个区域的单元格
    // selectRowAtIndex: animation: scrollPosition
    // 18. 取消选中的单元格
    // deselectRowAtIndexPath: animation:
    // dequeueReusableCellWithIdentifier:---------获取重用队列里的单元格

    // 二. UITableViewDataSource代理方法:
    // 方法:
    // 1. numberOfSectionsInTableView:------------设置表格的组数
    // 2. tableView:numberOfRowInSection:----------设置每个组有多少行
    // 3. tableView:cellForRowAtIndexPath:---------设置单元格显示的内容
    // 4. tableView:titleForHeaderInSection:---------设置组表的头标签视图
    // 5. tableView:titleForFooterInSection:-----------设置组表的尾标签视图
    // 6. tableView:canEditRowAtIndexPath:---------设置单元格是否可以编辑
    // 7. tableView:canMoveRowAtIndexPath:--------设置单元格是否可以移动
    // 8. tableView:sectionIndexTitleForTableView:atIndex:-------设置指定组的表的头标签文本
    // 9. tableView:commitEditingStyle:forRowAtIndexPath:----------编辑单元格(添加,删除)
    // 10. tableView:moveRowAtIndexPath:toIndexPath-------单元格移动

    // 三. UITableViewDelegate代理方法:
    //
    // 1. tableView: willDisplayCell: forRowAtIndexPath:-----------设置当前的单元格
    //
    // 2. tableView: heightForRowAtIndexPath:-----------设置每行的高度
    // 3. tableView:tableView heightForHeaderInSection:-----------设置组表的头标签高度
    // 4. tableView:tableView heightForFooterInSection:-------------设置组表的尾标签高度
    // 5. tableView: viewForHeaderInSection:----------自定义组表的头标签视图
    // 6. tableView: viewForFooterInSection: ----------自定义组表的尾标签视图
    //
    // 7. tableView: accessoryButtonTappedForRowWithIndexPath:-----------设置某个单元格上的右指向按钮的响应方法
    //
    // 8. tableView: willSelectRowAtIndexPath:-----------获取将要选择的单元格的路径
    // 9. tableView: didSelectRowAtIndexPath:-----------获取选中的单元格的响应事件
    // 10.tableView: tableView willDeselectRowAtIndexPath:------------获取将要未选中的单元格的路径
    // 11. tableView: didDeselectRowAtIndexPath:-----------获取未选中的单元格响应事件

    不吹牛逼 以上的这些关于tableView的方法如果都掌握了 那么 你就是下一个tableView小能手 是不是酷酷的 关于tableView的分享就到这里 ...

    未完待续......

    相关文章

      网友评论

        本文标题:项目总结之tableView的小细节

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