Программно сделать SKLabelNode жирным шрифтом в Swift

Как говорится в заголовке, я хотел бы сделать свой SKLabelNodebold программным путем.

Как мне это сделать?


person LukeTerzich    schedule 27.01.2015    source источник


Ответы (4)


Для SKLabelNode вам необходимо использовать:

var labelNode = SKLabelNode()
labelNode = SKLabelNode(fontNamed: "AvenirNext-Bold")

or

var labelNode = SKLabelNode()
labelNode.fontName = "AvenirNext-Bold"
person PoisonedApps    schedule 27.01.2015

Вы не можете выделить сам SKLabelNode полужирным шрифтом. Вы должны использовать жирный шрифт.

Но если вы хотите использовать собственный шрифт, вы должны использовать тот, который выделен жирным шрифтом:

skLabel.fontName = "YourFontName-Bold"
skLabel.fontSize = 14

Чтобы получить все шрифты, доступные для iOS, посетите этот сайт: http://iosfonts.com/

person Christian    schedule 27.01.2015
comment
По какой-то причине .Font не распознается - SKLabelNode не имеет члена с именем Font - person LukeTerzich; 27.01.2015
comment
вы должны написать .font со строчной буквой «f». - person Christian; 27.01.2015
comment
попробовал оба и все еще не получил члена (даже с .font) - person LukeTerzich; 27.01.2015
comment
Ах я вижу. вы используете SKLabelnode. Я думал, что вы используете UILAbel. Я обновил свой ответ. - person Christian; 27.01.2015
comment
Это сделало это! Идеальный! Спасибо, ребята. Какой шрифт по умолчанию для LabelNode? Я не хочу выбирать новый шрифт и не знаю, как называется шрифт по умолчанию - person LukeTerzich; 27.01.2015
comment
Вы можете получить имя шрифта, просто распечатав его: println(skLabel.fontName). Если мой ответ решил вашу проблему, нажмите на галочку слева от моего ответа, чтобы другим людям было легче найти его. - person Christian; 27.01.2015

Вот небольшое расширение для SKLabelNode. Позволяет переключаться между полужирным и нежирным шрифтом. Возвращаемое значение сообщает, выделено ли оно в данный момент полужирным шрифтом.

extension SKLabelNode
{
    func toggleBold() -> Bool
    {
        if var range = self.fontName.rangeOfString("-Bold")
        {
            self.fontName = self.fontName.substringToIndex(range.startIndex)
            return false
        }
        else
        {
            self.fontName = self.fontName + "-Bold"
            return true
        }
    }
}
person OwlOCR    schedule 27.01.2015

Использовать свойство шрифта UILabel

label.font = UIFont(name:"HelveticaNeue-Bold", size: 16.0)

или используйте системный шрифт по умолчанию для полужирного текста

lable.font = UIFont.boldSystemFontOfSize(16.0)
person Prabhjot Singh    schedule 27.01.2015
comment
Вопрос касался SKLabelNode, а не UILabel. - person Craig Grummitt; 26.08.2015