Как подчеркнуть SKLabelNode в Swift? - PullRequest
0 голосов
/ 19 февраля 2019

Как я могу подчеркнуть SKLabelNode в swift 4?

Я много искал, но, похоже, нет никакой возможности сделать это ..

import SpriteKit

class GameScene: SKScene {

    let mylabel = SKLabelNode(fontNamed:"ChalkboardSE-Regular")

    override func didMove(to view: SKView) {
        mylabel.text = "Hello World"
        mylabel.position = CGPoint(x: UIScreen.main.bounds.width/2 , y: UIScreen.main.bounds.height/2)
        addChild(mylabel)
    }
}

1 Ответ

0 голосов
/ 19 февраля 2019

Со ссылкой, полученной от KnightOfDragon, я наконец-то заставляю ее работать .. (Спасибо за это KnightOfDragon!), Но только в iOS 11 и новее.Есть ли другой способ использовать его в iOS 9 и новее?

Вот фактический код:

import SpriteKit

class GameScene: SKScene {

    let mylabel = SKLabelNode(fontNamed:"ChalkboardSE-Regular")

    override func didMove(to view: SKView) {
        if #available(iOS 11.0, *) {
            mylabel.attributedText = getUnderlinedAttributedString(string: "Hello World")
        } else {
            mylabel.text = "Hello World"
        }
        mylabel.position = CGPoint(x: UIScreen.main.bounds.width/2 , y: UIScreen.main.bounds.height/2)
        addChild(mylabel)
    }


    func getUnderlinedAttributedString(string: String) -> NSMutableAttributedString
    {
        let attributedString = NSMutableAttributedString.init(string: string)
        let stringRange = NSMakeRange(0, attributedString.length)

        attributedString.beginEditing()
        attributedString.addAttribute(NSAttributedString.Key.underlineStyle, value: 1, range: stringRange)
        attributedString.endEditing()

        return attributedString
    }
}
...