当前位置: 移动技术网 > 移动技术>移动开发>IOS > [iOS]对TableHeaderView添加约束后适配高度

[iOS]对TableHeaderView添加约束后适配高度

2018年10月14日  | 移动技术网移动技术  | 我要评论

[ios]对tableheaderview添加约束后适配高度

tableview调用settableheaderview方法设置headerview后,发现若对headerview添加了约束再对其上的label赋值时,headerview高度无法自动适配。

这里换了下思路,用代码结合约束的方式来实现tableheaderview高度的适配。

 

#import "homeviewcontroller.h"

@interface homeviewcontroller () 
@property (weak, nonatomic) iboutlet uitableview *tableview;
@property (strong, nonatomic) iboutlet uiview *headerview;

@end

@implementation homeviewcontroller

- (void)viewdidload {
    [super viewdidload];
    self.title = @"首页";
    self.automaticallyadjustsscrollviewinsets = no;
    [_tableview settableheaderview:_headerview];

}

// 更新headerview高度
- (void)updateheaderviewheight {
    uiview *tvheaderview = _headerview;
    nsarray *subviews = [tvheaderview subviews];
    float maxheight = 0;
    float minx = 100;
    for (uiview *tempview in subviews) {
        float tempheight = tempview.frame.origin.y + tempview.frame.size.height;
        if (tempheight > maxheight) {
            maxheight = tempheight;
        }
        float tempx = tempview.frame.origin.y;
        if (minx > tempx) {
            minx = tempx;
        }
    }
    cgrect hbounds = tvheaderview.bounds;
    hbounds.size.height = maxheight + minx;
    tvheaderview.bounds = hbounds;
    [_tableview settableheaderview:tvheaderview];
}

- (void)viewdidappear:(bool)animated {
    [self updateheaderviewheight];
}

@end

 

图一:

如此添加约束(约束底边),无法适配headerview高度;

\

\

图二:

如此添加约束(不约束底边),再结合代码能适配headerview的高度;

\

\

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网