gpt4 book ai didi

ios - boundingRectWithSize 忽略换行符

转载 作者:行者123 更新时间:2023-12-03 11:16:13 26 4
gpt4 key购买 nike

我正在尝试创建一个 UITableViewCell包含 UITextView当用户在 textview 中输入文本时,单元格应该相应地增长。
到目前为止,这也很有效,除了 boundingRectWithSize方法在计算新单元格大小时忽略尾随换行符。这是我的方法调用的样子:

  CGRect rect = [text boundingRectWithSize:CGSizeMake(self.cellSize.width, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:[UIFont fontWithName:@"AvenirNext-Medium" size:14.0]}
context:nil];

例如,如果我输入
Test
\n
\n

(换行符可视化为“\n”),该方法返回包含两行而不是三行的 TextView 的大小。
我试了好几个 options和其他 attributes但找不到有效的解决方案。我怎样才能以一种有效的方式做到这一点?

最佳答案

此问题是搜索特定错误/功能时在 google 上的第一个搜索结果。它是可解决的,解决它的方法是在“选项”参数中提供一个额外的标志: NSStringDrawingUsesFontLeading
该标志强制方法使用字体的行距来计算文本占用的范围,即每行底部到下一行底部的距离(引用:https://www.programmersought.com/article/6564672405/)。
我还发现您可能需要向 height 添加一些额外的填充。结果矩形的属性取决于使用的字体。

CGRect rect = [text boundingRectWithSize:CGSizeMake(self.cellSize.width, CGFLOAT_MAX)
options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
attributes:@{NSFontAttributeName:[UIFont fontWithName:@"AvenirNext-Medium" size:14.0]}
context:nil];

关于ios - boundingRectWithSize 忽略换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24891649/

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