UITableView autolayout的tableHeaderView设置

  • 使用masonry给tableHeadView 添加各种子View,并做好布局
  • 对子View中多行的UILabel,设置preferredMaxLayoutWidth属性,否则UILabel只能计算出单行的高度,如下
self.hitLab.preferredMaxLayoutWidth = SCREEN_WIDTH - 20;
  • 动态计算tableHeadView的高度,并设置tableHeadView的frame,如下
    CGFloat height = [self.tableHeadView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
    CGRect frame = self.tableHeadView.frame;
    frame.size.height = height;
    self.tableHeadView.frame = frame;
    
    self.tableview.tableHeaderView = self.tableHeadView;

你可能感兴趣的:(UITableView autolayout的tableHeaderView设置)