美文网首页
iOS tableView 有关header

iOS tableView 有关header

作者: 草原烈鹰 | 来源:发表于2019-07-21 23:22 被阅读0次
    1. 如果你用xib加载headerView然后通过代码添加到tableView的header出现乱七八糟的事儿,比如布局算不准,比如点击事件无法响应,加下面这行代码
        header.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    
    1. 用xib在tableView的xib中直接画header

    首先在xib中拖一个UIVew进去,注意先拖入到与View并列处,如图:


    屏幕快照 2018-06-08 下午3.51.54.png

    然后将,这个View拖到File’s Ower 的那一并列层中,(按照箭头所指的方向拖拽即可)如图:


    屏幕快照 2018-06-08 下午3.52.05.png

    然后:


    屏幕快照 2018-06-08 下午3.52.13.png

    接下来的一步不要忘记:把刚刚的UIView的Simulated Metrics的Size设置成Freeform。(忘记此步骤下面就不成功了)

    然后再将这个VIew拖入到TableView,还是按图箭头方向操作即可,如图:


    屏幕快照 2018-06-08 下午3.52.30.png

    完成后如图所示:


    屏幕快照 2018-06-08 下午3.52.34.png

    这个时候,该UIView会自动作为UITableView的tableHeaderView或tableFooterView了。

    1. 自动布局head
      如果自定义的head里面约束上下完整,那么可以在VC中使用的时候,不用设置高度,
      利用如下代码:
      self.mineTableView.tableHeaderView = self.mineHeadView;
      [self.mineHeadView mas_makeConstraints:^(MASConstraintMaker *make) {
          make.top.offset(0);
          make.width.offset(WIDTH_OF_SCREEN);
      }];
    
    
    - (void)viewDidLayoutSubviews {
        CGFloat headHeight = [self.mineTableView.tableHeaderView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
        CGRect newFrame = self.mineTableView.tableHeaderView.frame;
        newFrame.size.height = headHeight;
        self.mineHeadView.frame = newFrame;
    //    [self.mineHeadView mas_updateConstraints:^(MASConstraintMaker *make) {
    //        make.top.offset(newFrame.origin.y);
    //    }];
    }
    

    或者:

       1,  self.tableView.tableHeaderView = self.headV;
          CGFloat headHeight = [self.headV systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
        CGRect newFrame = self.headV.frame;
        newFrame.size.height = headHeight;
        self.headV.frame = newFrame;
    2. 在headV填充数据后,再次设置:
             CGFloat headHeight = [self.headV systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
            CGRect newFrame = self.headV.frame;
            newFrame.size.height = headHeight;
            self.headV.frame= newFrame;
            self.tableView.tableHeaderView = self.headV;
    
    

    相关文章

      网友评论

          本文标题:iOS tableView 有关header

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