gpt4 book ai didi

ios - UITextView 根据 UITableViewCell 中的文本动态宽度

转载 作者:行者123 更新时间:2023-11-29 06:00:47 27 4
gpt4 key购买 nike

我正在努力制作像 iMessage 中那样的聊天气泡。我必须使用 UITextView 来利用 DataDetectors 自动检测 url、电话号码和地址。我的 View 层次结构就像;

-UITableViewCell
-ContentView
-ChatBubbleContainerView
-UITextView

ChatBubbleContainerView 的约束为

  • 左、右、上、下边距均为 10 磅 --> ContainerView

UITextView 有以下限制

  • 左、右、上、下边距均为 10 磅 --> ChatBubbleContainerView

我想实现一种行为,使 TextView 根据其内容自动扩展其高度和宽度,例如文本。但 TextView 没有内在内容大小

这些是我尝试过的方法,但得到了错误的结果

  1. 覆盖 TextView 的intrinsicContentSize属性,但它是也不工作。
  2. ChatBubbleContainerView 提供宽度约束,并将其更改为 sizeThatFits() 方法的结果
  3. ChatBubbleContainerView 提供宽度约束,并将其更改为 text.boundingRect 方法的结果

这些是我得到的结果

  1. 它无法正常工作,并且当我滚动表格 View 时单元格未按预期布局
  2. 它可以工作,但 Nib 中单元格的初始宽度为 375 磅,这对于 4.7 英寸设备来说很好,但是当我切换到 iPhone SE 等在初始表格 View 加载或单元格插入时有 4 英寸的设备时,单元格的宽度是根据 375 点而不是 320 点计算的。滚动单元格后,布局按预期布局。
  3. 与 2 相同。

当我尝试使用 UILabel 相同的布局时,它按预期工作。您可能知道 UILabel 具有固有的内容大小。

谢谢

最佳答案

TextView 约束很好,您需要对 ChatBubbleContainerView 约束进行一些更改。

ChatBubbleContainerView 约束:

  • 顶部、领先、底部 -> 10 分

  • MaxWidth(GreaterThanOrEqual) 到 contentView,例如0.85,或者您可以使用 maxConstant(GreaterThanOrEqual 到 contentView。

您需要设置 maxWidth,然后只有 ChatBubbleContainerView 才会响应。

关于ios - UITextView 根据 UITableViewCell 中的文本动态宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54692157/

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