[iOS]对TableHeaderView添加约束后适配高度
程序员文章站
2022-04-30 20:13:48
[ios]对tableheaderview添加约束后适配高度
tableview调用settableheaderview方法设置headerview后,发现若对headerview添加了约束再对其上...
[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的高度;
上一篇: 坐电梯一妈妈对女儿说
下一篇: iOS 移动端架构的那些事