我已经阅读了多个有关此主题的线索,但尚未找到解决方案。
我正在制作类似聊天的应用程序
该应用程序具有 TableView ,其中具有动态高度单元格。
一个单元格由一个视图和一个多行标签组成。
如果标签上的字符超过> 250 ,则会以“ ...更多内容”
结尾现在的问题是标签有时会被剪掉。
我在标签的Line Break
设置下玩了一点,然后将其更改为 Character Wrap (字符包)。
左图:Character Wrap
---右图: Word Wrap
(我需要这个)
我意识到,如果将标签的宽度或视图的宽度设置为固定大小,那么问题就可以解决:因此,问题的根源可能是气泡视图的前导约束:
Align leading to Superview
Constant: 0
Priority: 1000
Multiplier: 0.25
(这是必需的,这样气泡视图才能最大扩展到超级视图的75%)
我为此做了一个GitHub存储库:
https://github.com/krptia/chatBubbleTest
请帮助!
有人吗?
答案 0 :(得分:1)
我发现,如果我设置气泡视图的前导常数,则以下内容:
Align leading to Superview
Constant: 0
Priority: 1000
Multiplier: 0.25
为了将最大宽度设置为75%,内部的标签不能正确缠绕。
所以我删除了前导约束,取而代之的是我通过宽高比最大化宽度!
如果我使用纵横比 2:3
然后我获得了相同的结果,但是标签正确包裹了!
是
好的,现在我发现气泡视图的前导约束的第二项(SuperView.Trailing)是相对于保证金
取消选中它后,问题得到解决,因此我不必使用纵横比!是的
因为使用Line Break: Word Wrap
也会引起一些问题。
有时它会尝试将文本分成新行(至少2个字),但是如果单元格被重用,则应用可能会为视图计算错误的高度。
第一张图片:Word Wrap
-------第二张图片:Clip
也许这个问题可以用layoutIfNeeded()解决,或者我不知道。剪辑对我来说很好
嗯..我意识到问题仍然存在...我不明白为什么。
仍在尝试找出答案。