Как подчеркнуть текст с большим размером шрифта в Swift, используя NSAttributedString? - PullRequest
0 голосов
/ 19 февраля 2019

Я не понимаю, как подчеркнуть текст с большим размером шрифта с помощью NSAttributedString в swift 4.2

Например, этот код НЕ подчеркнут, но если я изменю размер шрифта на 12 или ниже, он будет работать итекст подчеркнут ..

Как мне подчеркнуть мой текст с размером шрифта 25 или выше?

import SpriteKit

class GameScene: SKScene {

    let mylabel = SKLabelNode()

    override func didMove(to view: SKView) {

        let myAttributes : [NSAttributedString.Key: Any] = [
            NSAttributedString.Key.font : UIFont(name: "ChalkboardSE-Regular", size: 25.0)!,
            NSAttributedString.Key.underlineStyle : NSUnderlineStyle.single.rawValue]

        mylabel.attributedText = NSMutableAttributedString(string: "Hello World", attributes: myAttributes)
        mylabel.position = CGPoint(x: UIScreen.main.bounds.width/2 , y: UIScreen.main.bounds.height/2)
        addChild(mylabel)
    }
}

1 Ответ

0 голосов
/ 21 февраля 2019
class UnderlinedLabel: UILabel {

    override var text: String? {
        didSet {
            guard let text = text else { return }
            let textRange = NSMakeRange(0, text.count)
            let attributedText = NSMutableAttributedString(string: text)
            attributedText.addAttribute(NSAttributedString.Key.underlineStyle , value: NSUnderlineStyle.single.rawValue, range: textRange)
            // Add other attributes if needed
            self.attributedText = attributedText
        }
    }
}

После этого непосредственно назначьте класс UnderlineLabel определенной метке в StoryBoard.

...