gpt4 book ai didi

swift - TableView 为动态宽度和高度标签计算错误的高度

转载 作者:行者123 更新时间:2023-11-28 05:47:54 36 4
gpt4 key购买 nike

我已经阅读了多个关于此的话题,但我还没有找到解决方案。

我正在制作一个类似聊天的应用程序


该应用有一个 TableView,其中包含动态高度单元格

一个单元格由一个 View 和一个多行标签组成。

如果标签的字符数超过 >250,它会被缩短并以 “...查看更多”

结尾

现在的问题是有时标签会被切断。

我对标签的 Line Break 设置进行了一些调整,将其更改为 Character Wrap 后,标签显示了其全文。

左图:Character Wrap - - - 右图: Word Wrap(我需要这个)

enter image description here 如右图所示,“Bt...See More”被截断了。


我意识到,如果我将label's widthview's width 设置为固定大小,那么问​​题就解决了:所以也许问题的根源在于气泡 View 前导约束:

Align leading to Superview
Constant: 0
Priority: 1000
Multiplier: 0.25

(这是必要的,以便气泡 View 最大扩展到父 View 的 75%)

我为此做了一个 GitHub 存储库:

https://github.com/krptia/chatBubbleTest

请帮忙!


有人吗?

最佳答案

解决方案

我发现如果我将气泡 View 的前导常量设置如下:

Align leading to Superview
Constant: 0
Priority: 1000
Multiplier: 0.25

为了将最大宽度设置为 75%,里面的标签不正确地换行。

所以我删除了前导约束,而不是通过宽高比最大化宽度!

如果我使用纵横比 2:3

然后我实现了相同的结果,但标签正确包装!!

是的

解决方案 2.0

好的,现在我已经弄清楚气泡 View 的前导约束的第二项 (SuperView.Trailing) 是Relative to Margin

取消选中后,问题得到解决,所以我不必使用纵横比!是的

但要注意

因为使用 Line Break: Word Wrap 也会导致一些问题。

有时它会尝试将文本换行(至少 2 个单词),但如果单元格被重复使用,则应用可能会计算出错误的 View 高度。


第一张图片:自动换行 - - - - - - 第二张图片:剪辑

enter image description here

也许这个问题可以用 layoutIfNeeded() 解决,或者我不知道。剪辑对我来说很好

更新 (2019.03.27)

嗯..我意识到问题仍然存在......我不明白为什么。

仍在努力弄清楚..

关于swift - TableView 为动态宽度和高度标签计算错误的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53982102/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com