Autolayout UILabel在第二视图出现时高度发生变化
我在TableHeaderView中有一个dynamic的UILabel( 见这个问题 ),一切都没问题 ,但是如果我把标签的文本设置为nil
或者@""
那么标签就会保持文本的高度在。
我正在改变我以presenting modally
的不同viewController中的文本。 所以我想通过3个步骤展示给你:
原始状态
将文本设置为@""
在这一步中,我介绍了viewController删除文本,然后closuresviewController回到这个视图。
重新出现这个视图
所以我必须打开编辑视图控制器才能再次解雇它。 然后就像我想要..:
任何想法为什么? 我在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; }
任何想法,为什么我必须访问两次查看?
也许它需要约束更新某处,或layoutIfNeeded
。 其他解决scheme可以在我的其他答案中find。
您应该实施tableViewDelegate方法并计算标题高度。
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { CGFloat height = //Calculate the dynamic height. return height; }
- UICollectionViewCell用内在大小展开/折叠
- animation时无法同时满足约束条件
- 居中使用NSLayoutConstraint大UIView
- 使用自动布局缩放UIImageView的UIScrollView
- 首次出现时不能更改UITableViewCell中的UILabel的框架(使用Autolayout)
- 自动布局自动旋转时,如何重新排列视图?
- 我有一个UILabel自动布局定位在屏幕上,但是当我隐藏导航栏,它会导致标签“抽搐”第二个
- 无法同时满足约束embedded在故事板中的AVPlayerViewController的警告
- 组表TableView,使用自调整节标题,重新加载后,如果向上滚动,tableview将跳转