Contents
  1. autoresizingMask
    当vc有导航栏且这个vc的tableView设置了tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight;,那么在最终显示的时候tableView的高度会自动减去导航栏的高度。如果你要用代码去控制tableView或它的子view的frame时,要记住这点,避免出现空白
  2. deleteRowsAtIndexPaths和deleteSections
    section有大于1条row时,可以使用deleteRowsAtIndexPaths;当section中只有一条row时,要用deleteSections
  3. 分割线的间距
    系统默认的间距就是15,所以你设置15是跟默认的一样。
    1. xib设置
      xib面板上第4个选项separator Inset设置
    2. 代码设置
      [self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 15, 0, 0)];
  4. 键盘隐藏方式

    1. 拖拽时隐藏

      1
      tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
    2. 触摸时隐藏(手势)

      1
      2
      3
      4
      5
      6
      7
      @weakify(self)
      UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];
      [[tap rac_gestureSignal] subscribeNext:^(id x) {
      @strongify(self);
      [self.view endEditing:YES];
      }];
      [self.servicePackageAddView.tableView addGestureRecognizer:tap];
  5. 该使用plain?还是grouped?

    想要撇开讨厌的空白间隙的问题,就要用plain模式。
    实在要用grouped模式,遇到空白间隙时,妥善使用self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);可以帮助你处理好空白问题。

  6. cell自动高度设置
    cell不管是用xib,还是用代码写,只要不是固定大小的都会碰到高度自适应问题。如果不考虑性能,可以将cell高度设置为UITableViewAutomaticDimension。要求cell的子元素必须跟cell做好四条边约束(上、下、左、右),如果遇上iOS10及以下版本,还需要设置
    self.tableView.estimatedRowHeight = 某个值;不然没有效果。
Contents