我有一个UIView
in。xib
文件,我在运行时加载并将其设置为UITableView
的tableHeaderView。我的xib文件中有一个UILabel
,它可以在底部以固定UIButton
动态增长。
如果我将UILabel
的宽度设置为固定宽度,则可以正常工作。
我正在使用以下代码来处理headerView的高度
-(void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
// Dynamic sizing for the header view
if (table.tableHeaderView) {
UIView *headerView = table.tableHeaderView;
float height = [headerView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
CGRect headerFrame = headerView.frame;
// If we don't have this check, viewDidLayoutSubviews() will get
// repeatedly, causing the app to hang.
if (height != headerFrame.size.height) {
headerFrame.size.height = height;
headerView.frame = headerFrame;
table.tableHeaderView = headerView;
}
}
}
任何人都可以解释为什么设置领先/尾随不起作用? 我的约束视图就像(没有固定宽度):
答案 0 :(得分:0)
在viewDidLayoutSubviews结束时调用。
[viewWithLabelAndButton setNeedLayout]; [viewWithLabelAndButton layoutIfNeeded];