gpt4 book ai didi

ios - NSAttributedString绘图-多少行?

转载 作者:行者123 更新时间:2023-12-01 22:07:06 24 4
gpt4 key购买 nike

我正在使用此方法在PDF中绘制文本:

        let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.alignment = .center
paragraphStyle.lineBreakMode = .byWordWrapping

let textAttributes = [
NSAttributedString.Key.paragraphStyle: paragraphStyle,
NSAttributedString.Key.font: UIFont(name: "MySpecialFont", size: 16)!,
NSAttributedString.Key.foregroundColor: UIColor.black
]

let attributedText = NSAttributedString(
string: myTextArray.first,
attributes: textAttributes
)

let textRect = CGRect(
x: 400,
y: 40,
width: 80,
height: 40
)

attributedText.draw(in: textRect)

上面画的文字很好。但是,有时,传递给它的字符串似乎太长,并且连续3行而不是2行。在这些情况下,我希望 textRect更高。基本上知道要花费多少行,以便可以调整 textRect
NSAttributedString中有几个函数可以给出字符串的长度,但是如果在一行中,那就是长度。

有没有办法知道 attributedText内最终 textRect将占用几行?

最佳答案

使用NSAttributedString.boundingRect(with:options:context:)计算所需的大小。您应该将.usesLineFragmentOrigin作为选项传递,以便针对多行进行计算。通过所需的宽度;高度并不重要,因为它将扩展高度以包含完整的字符串,您可以使用它来计算最终的矩形。

就是说,从您的描述来看,听起来您可以使高度非常大(通常值为10,000;但也许您只想给三行空间)。因为您只是在这里画图;可用的矩形是否比要求的高无关紧要。只有更短才重要。

关于ios - NSAttributedString绘图-多少行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59538724/

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