gpt4 book ai didi

swift - SKLabelNode - 获取实际行数

转载 作者:行者123 更新时间:2023-11-28 06:04:50 25 4
gpt4 key购买 nike

在 SpriteKit 中,您现在可以设置 SKLabelNode 的行数,因此标签可能会经过几行。

let lb = SKLabelNode(fontNamed: "Courier-bold")
lb.numberOfLines = 0
lb.preferredMaxLayoutWidth = size.width

有什么方法可以确定 SKLabelNode 渲染到的 ACTUAL 行数?

最佳答案

您应该通过生成具有相同文本格式参数的UILabel 来计算行数,并计算其实际行数,described here .

使用常规文本:

let preferredMaxWidth: CGFloat = <maximum width of the label>

let label = UILabel()
label.text = lb.text
label.font = UIFont(name: lb.fontName, size: lb.fontSize)
label.numberOfLines = lb.numberOfLines

label.frame.size.width = preferredMaxWidth
label.sizeToFit()
label.frame.size.width = preferredMaxWidth

let numberOfLines = Int(label.frame.size.height / label.font.pointSize)

带有属性文本(如果它只使用一种字体):

let preferredMaxWidth: CGFloat = <maximum width of the label>

let label = UILabel()
label.attributedText = lb.attributedText
label.numberOfLines = lb.numberOfLines

label.frame.size.width = preferredMaxWidth
label.sizeToFit()
label.frame.size.width = preferredMaxWidth

guard let pointSize = (lb.attributedText.attributes(at: 0, effectiveRange: nil)[.font] as? UIFont)?.pointSize else {
return
}

let numberOfLines = Int(label.frame.size.height / pointSize)

关于swift - SKLabelNode - 获取实际行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48549219/

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