我使用autolayout。我在自定义UITableViewCell中显示2个标签。 Label1
高于Label2
。他们的文字是动态的。
问题是显示的其中一个标签的高度大于其文本。
我尝试更改Content Hugging Priority
。
所以会发生的情况是,如果优先级相同或Label1
的优先级更高,那么Label1
具有适合其文本的精确高度,但Label2
具有比所需更高的高度。如果Label2
的拥抱优先级高于问题,那么Label1
的身高就会出现问题。
知道怎么解决吗?
答案 0 :(得分:0)
看起来您希望您的单元格根据自动布局的约束信息自动调整大小,但UITableView
使用框架/自动调整遮罩调整单元格的大小。如果这是期望,并且您没有像this question中那样自动调整单元格,那么您的标签将强制剪切自己,以便适合在单元格中使用从表格视图中给出的大小或成长以满足所有保证金限制。
由于内容拥抱和内容压缩阻力优先级值小于要求(小于1000),因此它们被认为是“可选的”并且在不违反任何其他所需约束的情况下尽可能地满足。这就是为什么你的标签开始增长(或削减自己)。
这可以通过几种方式解决:
contentHuggingPriority
。这样,拥抱优先级约束的内容将优先于较低的约束。contentHuggingPriority
。答案 1 :(得分:-1)
我在尝试了很多事情后解决了这个问题。我唯一要做的就是将水平和垂直内容压缩阻力优先级设置为必需 .i.e。 1000。 我为所有标签做了这个,因为我不希望任何标签修剪它们的内容。
另一件重要的事情是获得正确的细胞高度。如果计算自定义单元格高度时甚至有1pt的错误,则不会按预期显示。
提示:
Yoy可以通过添加/删除您为单元格计算的高度(变量)的常量值来测试高度是否错误。