gpt4 book ai didi

ios - NSString 的 boundingRect 函数误导行为

转载 作者:行者123 更新时间:2023-11-28 15:05:32 25 4
gpt4 key购买 nike

当我尝试通过 NSString 函数 boundingRect 包装到盒子中并注意初始插入 (8,0,8,0) 时,我尝试使用以下方法计算文本的每一帧:

let size = CGSize(width:250 ,height: 1000)
let options = NSStringDrawingOptions.usesLineFragmentOrigin.union(.usesFontLeading)

let estimatedFrame = NSString(string: messageText).boundingRect(with: size, options: options, attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 18
)], context: nil)

然后当我创建文本的框架时

cell.messageTextView.frame = CGRect(x: 48 + 8, y: 0, width: estimatedFrame.width , height: estimatedFrame.height + 20)

enter image description here

它削减了我的文本。即使没有默认的填充和宽度插图。但是当我向宽度参数添加任意数字时,我正确地包装了全文。 enter image description here

有人知道这种行为的真正原因吗?甚至更多我可以添加到宽度参数而不是 16 点甚至更少像 8.3425 点,它会正常工作但如果我通过 8.3424 它不会? boundingRect 函数不应该为我的包装盒提供合适的尺寸吗?

最佳答案

UITextView 具有无法显示文本的插图(请注意,文本不会从灰色背景开始的地方开始)。如果您只是设置 View 的宽度,则文本的实际空间会受到这些插图的限制。

参见 UITextView.textContainerInsets。您需要将它们添加到您正在设置的框架的宽度和高度。

关于ios - NSString 的 boundingRect 函数误导行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48518741/

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