我在TableHeaderView(see this question)中有一个动态UILabel,一切都很好,但如果我将标签的文本设置为nil
或@""
,标签会保留文本所在的高度大小。
我改变了我{m} presenting modally
的另一个viewController中的文字。所以我想通过3个步骤向您展示:
原始状态
将文字设置为@""
在这一步中,我提出了viewController来删除文本,然后我解除了viewController以返回到这个视图。
重新显示此视图
所以我必须打开编辑viewController才能再次关闭它。然后就像我想要它......:
任何想法为什么?我在viewWillAppear
方法中重新调整了TableViewHeader的大小:
- (void)resizeTableViewHeader
{
//GET THE SIZE OF THE CONTAINER
CGSize fittingSize = [self.header systemLayoutSizeFittingSize: UILayoutFittingCompressedSize];
self.header.frame = CGRectMake(0, 0, 320, fittingSize.height);
self.tableView.tableHeaderView = self.header;
}
知道为什么我要两次访问View吗?
答案 0 :(得分:0)
可能需要在某处更新约束,或layoutIfNeeded
。其他解决方案可以在我的其他answer中找到。
答案 1 :(得分:-1)
您应该实现uitableViewDelegate方法并计算标题高度。
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
CGFloat height = //Calculate the dynamic height.
return height;
}