您可以创建一个自定义类来循环遍历character
中的每个,string
并SKLabelNode
为每个character
.
class SKVerticalLabelNode : SKNode
{
var fontName : String = "" {
didSet {
self.updateLabelProperties()
}
}
var fontSize : CGFloat = 10.0 {
didSet {
self.updateLabelProperties()
}
}
var fontColor : UIColor = UIColor.whiteColor() {
didSet {
self.updateLabelProperties()
}
}
var text : String = "" {
didSet {
self.updateLabelProperties()
}
}
func updateLabelProperties () {
self.removeAllChildren()
let length = countElements(text)
var yPosition : CGFloat = 0
for character in reverse(text) {
let label = SKLabelNode(fontNamed: self.fontName)
label.fontColor = self.fontColor
label.fontSize = self.fontSize
label.text = String(character)
label.position = CGPointMake(0, yPosition)
yPosition += label.frame.size.height
addChild(label)
}
}
}
可以这样使用
let scoreLabel = SKVerticalLabelNode()
scoreLabel.fontName = "TrebuchetMS-Bold"
scoreLabel.text = "2500"
scoreLabel.fontSize = 30
scoreLabel.fontColor = UIColor.redColor()
scoreLabel.position = CGPoint(x:180, y:180)
addChild(scoreLabel)