【发布时间】:2017-02-20 10:30:25
【问题描述】:
我在.xib 文件中有一个UIView,我在运行时加载它并将其设置为UITableView 的tableHeaderView。我的 xib 文件中有一个UILabel,它可以动态增长,底部固定为UIButton。
如果我将UILabel 的宽度设置为固定宽度,它会起作用。
如果我在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;
}
}
}
谁能解释为什么设置前导/尾随不起作用? 我的约束视图是这样的(没有固定宽度):
【问题讨论】:
-
您是否为标签设置 numberOfLines = 0?
-
显然有效。首先添加您的约束,然后只有我们才能确定问题所在。
-
你能展示你的整个代码吗?
-
@VishalSonawane 是的。约束已经存在,添加了图像。我的班级没有更多的代码,只有另外一种方法可以将文本设置为标签。
-
嗨@Husyn 我遇到了确切的情况。我已经通过正确设置约束来解决它。我遇到了一个问题,因为为按钮添加了错误的约束为“使用超级视图垂直居中”。请检查一次您的约束是否正确
标签: ios objective-c iphone uitableview nslayoutconstraint