gpt4 book ai didi

ios - 计算 AttributeText 的宽度和高度不正确

转载 作者:行者123 更新时间:2023-11-28 08:13:13 24 4
gpt4 key购买 nike

我正在进行应用聊天,但我对聊天消息的大小有疑问。

我已经像这样计算了消息的高度并且得到了正确的高度

maximumMessageWidth = 300.0
let size = CGSize(width: maximumMessageWidth, height: 1000.0)
let messageAttributeText = messageBody.attributedText
let height = messageAttributeText?.boundingRect(with: size, options: .usesLineFragmentOrigin, context: nil).height

为了避免像这张图片这样的特殊情况。我必须计算宽度

enter image description here我的留言后有很大的空间

我希望它看起来像这样:

enter image description here

这是我用来计算消息宽度的代码(我使用了计算宽度的正确高度)

let size = CGSize(width: 1000.0, height: height)
let messageAttributeText = messageBody.attributedText
var width = messageAttributeText?.boundingRect(with: size, options: .usesLineFragmentOrigin, context: nil).width

但是这段代码中的width似乎不对。因为我认为它确实关心我的高度属性。 它假设我的文本只有 1 行。但我想计算宽度,这样我的文字就会像第二张图片一样“填满整个标签”

有人知道如何计算我的情况下的宽度吗?

最佳答案

您可以通过将 String 转换为 NSString

var string = "Hello, World"
let nsString = string as NSString

let size = nsString.size(attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 14)])

大小将为您提供字符串的宽度高度

您可以将此应用于您的 NSAttributedString 的字符串属性。

关于ios - 计算 AttributeText 的宽度和高度不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43203087/

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