tableHeaderView的Masonry

原创 2016年08月29日 11:56:34

tableHeaderView的Masonry

    UIView *headView =[UIView new];
    headView.backgroundColor = [UIColor yellowColor];

    UIView *view1 =[UIView new];
    view1.backgroundColor =[UIColor redColor];
    [headView addSubview:view1];
    [view1 makeConstraints:^(MASConstraintMaker *make) {
        make.top.left.equalTo(10);
        make.right.equalTo(-10);
        make.height.equalTo(100);
    }];

    UIView *view2 =[UIView new];
    view2.backgroundColor =[UIColor blackColor];

    UILabel *label = [[UILabel alloc] init];
    [label setNumberOfLines:0];
    // 计算UILabel的preferredMaxLayoutWidth值,多行时必须设置这个值,否则系统无法决定Label的宽度(*****非常重要*****)
    label.preferredMaxLayoutWidth = ULMainScreenWidth - 20;
    [label setBackgroundColor:[UIColor greenColor]];
    [label setText:@"这样写了之后在7.1里面直接报错Auto Layout still required after executing -layoutSubviews. UITableView's implementation of -layoutSubviews needs to call super. 在8里面没有报错,但是headView并没有显示,按照字面的意思理解就是父视图要重新布局,我觉得应该是tableHeaderView在tableview里面系统应该有自己的布局,在外面设置的话就冲突了,然后报错,也不知道这个理解是不是对的。\n后来stackoverflow上面看了一些问答,基本上是先设置好headView,根据headView的Subview的autolayout计算出高度,然后再高度重新赋值给headView。下面是headView上面有2个子视图,高度各100"];

    [view2 addSubview:label];
    [label makeConstraints:^(MASConstraintMaker *make) {
        make.top.left.right.equalTo(0);
        make.bottom.equalTo(view2);
    }];

    [headView addSubview:view2];
    [view2 makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(view1.bottom).offset(10);
        make.left.right.equalTo(view1);
        make.bottom.equalTo(headView).offset(-10);
    }];

    CGFloat height = [headView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
    CGRect frame = headView.frame;
    frame.size.height = height;
    headView.frame =frame;
    tableView.tableHeaderView = headView;

来自:http://qcliwei.com/2015/08/02/tableHeaderView-autolayout/

http://tutuge.me/2015/08/08/autolayout-example-with-masonry2/

tableHeaderView与tableFooterView的使用

最近在尝试使用uitableview加载webview,自定义的控件可以加载在tableHeaderView与tableFooterView,在此记录下此俩视图的使用 比较简单的自定义如下:...
  • shuidonglCH
  • shuidonglCH
  • 2015年03月12日 00:47
  • 2804

UITableView最上面tableHeaderView留空间的两种方法

n 1)     UIView*headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320,44)];    m_tab...
  • m372897500
  • m372897500
  • 2015年04月16日 11:05
  • 1326

UITableViewHeaderFooterView的使用+自动布局

UITableViewHeaderFooterView的使用+自动布局 使用UITableView的header或footer复用时,如果采用自动布局,你会发现有约束冲突,下面这样写可以消除约束冲突...
  • u010618987
  • u010618987
  • 2015年07月03日 18:21
  • 1841

iOS UITableView动态改变tableHeaderView的高度

项目中需要在TableView的顶端显示一些内容,我们可以很方便的使用tableHeaderView来实现,但有时候需要动态调整tableHeaderView的高度,我们会发现即使重新设置header...
  • germ1107
  • germ1107
  • 2015年08月25日 10:53
  • 8598

TableHeaderView 高度问题

经常要改变tableview 头视图的高度(是tableview的头视图 不是cell分区的头视图) 改变frame 经常变化不过来 重置frame后 一定要用下面一行代码 重新给tabl...
  • chuan403082010
  • chuan403082010
  • 2016年12月14日 11:44
  • 2450

自定义TableHeaderView

原本打算自己手动设置tabview中的第一行cell,但是需要修改的地方太多了,看到有兄台使用tableHeaderView进行设置,很简单,于是也对其进行了自定义,效果不错。 UITableV...
  • Mideveloper
  • Mideveloper
  • 2012年07月08日 14:51
  • 26190

iOS开发 masonry 设置tableHeadView

转自:http://www.cnblogs.com/gaox97329498/p/5146965.html       使用到到tableHeadView,一直习惯用masonry来...
  • zhanglizhi111
  • zhanglizhi111
  • 2016年09月26日 10:39
  • 792

使用autolayout设置UITableView的tableHeaderView

网上资料比较少,都没有代码,答案在折腾很久后解决了,也有段时间没有写文章了。 使用Masonry开源框架来写,下面直接贴代码给正在遭受折磨的人     UIView *headView = [[UI...
  • qq562475163
  • qq562475163
  • 2015年09月14日 14:24
  • 3533

Swift4 - 动态计算UITableView中tableHeaderView的高度

开发的过程中,经常使用UITableView的tableHeaderView视图,对于固定高度的tableHeaderView,我们使用非常简单。创建一个自定义视图,计算好固定高度即可。如果要动态更新...
  • longshihua
  • longshihua
  • 2017年11月21日 20:28
  • 229

使用Masonry动态设置tableview表头---tableHeaderView(解决表头背景色设置不了问题)

//header     self.headerView =[[UIView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 90)]; ...
  • zhanglizhi111
  • zhanglizhi111
  • 2017年10月09日 09:16
  • 97
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:tableHeaderView的Masonry
举报原因:
原因补充:

(最多只允许输入30个字)