我想对SKLabelNode
设置字距调整。我使用了NSAttributedString
,此解决方案在iOS 11或更高版本上可以正常工作。
但是我也需要支持iOS 10。有什么方法可以设置支持iOS 10及更高版本的字距调整?
class Caption: SKLabelNode {
static func addNode(at position: CGPoint, isBold: Bool, text: String) -> Caption {
let font = isBold ? "Roboto-Bold" : "Roboto-Regular"
let attr: [NSAttributedString.Key: Any] = [
.font: UIFont(name: font, size: 16)!,
.foregroundColor: SKColor.white,
.kern: 2.0
]
let caption = Caption(attributedText: NSAttributedString(string: text.uppercased(), attributes: attr))
caption.horizontalAlignmentMode = .center
caption.verticalAlignmentMode = .top
caption.position = position
return caption
}
}
Xcode说:'init(attributedText:)' is only available on iOS 11 or newer.
let caption = Caption(attributedText: NSAttributedString(string: text.uppercased(), attributes: attr))
答案 0 :(得分:0)
答案是否定的。您将不得不想出另一种方法,例如使用UILabel进行渲染,从中提取UIImage,在SKSpriteNode上使用UIImage。
当然,最简单的解决方案是仅放弃对iOS 10的支持(大约5%的iOS用户在iOS 10上)