文本为空字符串时,自动布局UILabel的动态高度计算不起作用?
Posted
技术标签:
【中文标题】文本为空字符串时,自动布局UILabel的动态高度计算不起作用?【英文标题】:autolayout UILabel's dynamic height calculation doesn't work when text is empty string? 【发布时间】:2015-12-30 12:55:04 【问题描述】:在 ios 8 中,我在 UITableViewCell
中有一个 UILabel
。我希望单元格根据UILabel
的文本具有动态高度。它工作正常。 但是当文本为空字符串时,它似乎有一个默认高度,但我希望它为零。
这是我所做的:
-
使用
masonry
设置单元格的约束。设置top
, bottom
约束。
设置tableView.estimatedHeight
为heightForRow
委托方法返回UITableViewAutomaticDimension
那么我做错了什么吗?有什么帮助吗?
【问题讨论】:
[单元集NeedsUpdateConstraints]; [单元格更新约束如果需要];添加这两种方法还垂直设置 labelcentral 所以你不需要给顶部和底部空间,所以你必须将前导空间设置为你需要的边距 【参考方案1】:将 heightForRowAtIndexPath 的代码更改为此。这行得通!
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
NSString *text = [yourDataSourceArray objectAtIndex:indexPath.row];
if(text.length > 0 )
return UITableViewAutomaticDimension;
return 0;
【讨论】:
【参考方案2】:[yourLabel setContentCompressionResistancePriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisVertical];
[yourLabel setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisVertical];
将标签 V compress 设置为高优先级
【讨论】:
以上是关于文本为空字符串时,自动布局UILabel的动态高度计算不起作用?的主要内容,如果未能解决你的问题,请参考以下文章