Как установить жирный шрифт и курсив на UILabel iPhone/iPad?

Как установить жирный шрифт и курсив на UILabel iPhone/iPad? Я искал форум, но мне ничего не помогало. Может ли кто-нибудь мне помочь?

Ответ 1

sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];

Существует список имен шрифтов, которые вы можете установить вместо атрибута "fontWithName". Ссылка здесь

Ответ 2

Не пытайтесь играть с именами шрифтов. При использовании дескриптора шрифта вам не нужны имена:

UILabel * label = [[UILabel alloc] init]; // use your label object instead of this
UIFontDescriptor * fontD = [label.font.fontDescriptor
            fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold
                            | UIFontDescriptorTraitItalic];
label.font = [UIFont fontWithDescriptor:fontD size:0];

size:0 означает "сохранить размер как есть"

С помощью Swift попробуйте следующее расширение:

extension UIFont {

    func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
        let descriptor = self.fontDescriptor()
            .fontDescriptorWithSymbolicTraits(UIFontDescriptorSymbolicTraits(traits))
        return UIFont(descriptor: descriptor, size: 0)
    }

    func boldItalic() -> UIFont {
        return withTraits(.TraitBold, .TraitItalic)
    }

}

Тогда вы можете использовать это следующим образом:

myLabel.font = myLabel.font.boldItalic()

или даже добавьте дополнительные черты типа Condensed:

myLabel.font = myLabel.font.withTraits(.TraitCondensed, .TraitBold, .TraitItalic)

Обновление для Swift 4:

extension UIFont {
  var bold: UIFont {
    return with(traits: .traitBold)
  } // bold

  var italic: UIFont {
    return with(traits: .traitItalic)
  } // italic

  var boldItalic: UIFont {
    return with(traits: [.traitBold, .traitItalic])
  } // boldItalic


  func with(traits: UIFontDescriptorSymbolicTraits) -> UIFont {
    guard let descriptor = self.fontDescriptor.withSymbolicTraits(traits) else {
      return self
    } // guard

    return UIFont(descriptor: descriptor, size: 0)
  } // with(traits:)
} // extension

Используйте его следующим образом:

myLabel.font = myLabel.font.bold

или

myLabel.font = myLabel.font.italic

или

myLabel.font = myLabel.font.with(traits: [ .traitBold, .traitCondensed ])

Обновление для Swift 5

extension UIFont {
    var bold: UIFont {
        return with(.traitBold)
    }

    var italic: UIFont {
        return with(.traitItalic)
    }

    var boldItalic: UIFont {
        return with([.traitBold, .traitItalic])
    }



    func with(_ traits: UIFontDescriptor.SymbolicTraits...) -> UIFont {
        guard let descriptor = self.fontDescriptor.withSymbolicTraits(UIFontDescriptor.SymbolicTraits(traits).union(self.fontDescriptor.symbolicTraits)) else {
            return self
        }
        return UIFont(descriptor: descriptor, size: 0)
    }

    func without(_ traits: UIFontDescriptor.SymbolicTraits...) -> UIFont {
        guard let descriptor = self.fontDescriptor.withSymbolicTraits(self.fontDescriptor.symbolicTraits.subtracting(UIFontDescriptor.SymbolicTraits(traits))) else {
            return self
        }
        return UIFont(descriptor: descriptor, size: 0)
    }
}

Ответ 3

@Edinator взгляните на это.

myLabel.font = [UIFont boldSystemFontOfSize:16.0f]
myLabel.font = [UIFont italicSystemFontOfSize:16.0f];

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

Ответ 4

Вы можете установить стиль, семейство, размер шрифта, щелкнув букву "Т" в поле Шрифт.

Настройки шрифта метки

Ответ 5

У меня та же проблема, что и на ярлыке и кнопке необходимо применить как полужирный, так и курсив. Вы можете просто использовать следующий код для достижения этого эффекта:

myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];

Ответ 6

С помощью стандартного шрифта системы iOS 7 вы будете использовать helvetica neue bold, если хотите сохранить шрифт стандартной системы.

    [titleText setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0]];

Или вы можете просто называть его:

    [titleText setFont:[UIFont boldSystemFontOfSize:16.0]];

Ответ 7

Swift 3

Жирный

let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)

Курсив

let italicFont = UIFont.italicSystemFont(ofSize:UIFont.labelFontSize)

Ответ 8

посмотрите: этот URL

Ответ 9

 btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10];
 btn.titleLabel.font =  [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];

вы можете сделать жирный шрифт метки/кнопки, используя этот

Ответ 10

Я сделал вариацию ответа максимилиана wojakowski где вы можете добавить или удалить признак (ы)

extension UIFont {

    func withTraits(_ traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
        let descriptor = self.fontDescriptor
            .withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits).union(self.fontDescriptor.symbolicTraits))
        return UIFont(descriptor: descriptor!, size: 0)
    }
    func withoutTraits(_ traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
        let descriptor = self.fontDescriptor
            .withSymbolicTraits(  self.fontDescriptor.symbolicTraits.subtracting(UIFontDescriptorSymbolicTraits(traits)))
        return UIFont(descriptor: descriptor!, size: 0)
    }
    func bold() -> UIFont {
        return withTraits( .traitBold)
    }

    func italic() -> UIFont {
        return withTraits(.traitItalic)
    }

    func noItalic() -> UIFont {
        return withoutTraits(.traitItalic)
    }
    func noBold() -> UIFont {
        return withoutTraits(.traitBold)
    }
}

Exemple

label.font = label.font.italic().bold()

полезно при повторном использовании ячейки, и вы хотите удалить курсив, который вы нанесли на ярлык в предыдущей ячейке

Ответ 11

Недавно я написал сообщение в блоге об ограничениях API UIFont и о том, как его решить. Вы можете увидеть его на здесь

С кодом, который я предоставляю там, вы можете получить желаемый UIFont так же просто, как:

UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"];

И затем установите его в UILabel (или что-то еще) с помощью: myLabel.font = myFont;

Ответ 12

Как уже упоминалось в этих ответах, вам просто нужно правильное имя шрифта. Я нахожу, что iOSFonts.com является самым полезным ресурсом для того, чтобы точно знать, какое имя использовать.

Ответ 13

Пример Жирный текст:

UILabel *titleBold = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];
UIFont* myBoldFont = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
[titleBold setFont:myBoldFont];

Пример текста курсива:

UILabel *subTitleItalic = [[UILabel alloc] initWithFrame:CGRectMake(10, 35, 200, 30)];
UIFont* myItalicFont = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];
[subTitleItalic setFont:myItalicFont];

Ответ 14

Это очень просто. Вот код.

[yourLabel setFont:[UIFont boldSystemFontOfSize:15.0];

Это поможет вам.

Ответ 15

Обновление Максимилиана Вояковского Огромный ответ для быстрого 3

extension UIFont {

func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont? {
    guard let descriptorL = self.fontDescriptor.withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits)) else{
        return nil
    }
    return UIFont(descriptor: descriptorL, size: 0)
}

func boldItalic() -> UIFont? {
    return withTraits(traits: .traitBold, .traitItalic)
}

}

Ответ 16

Хотя ответ @tolbard удивителен и работает хорошо!

Я чувствую, что создание расширения для чего-то, что может быть достигнуто всего лишь строкой кода, было бы чрезмерным убийством.

Вы можете получить выделение жирным шрифтом, а также курсивом для того же текста в label, установив свойство шрифта с помощью UIFontDescriptor как показано ниже в примере ниже с использованием Swift 4.0:

label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)

Другие варианты включают в себя:

traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded

Для получения дополнительной информации о том, что означают эти символические черты? посетите здесь

Ответ 17

Много раз выделенный жирным шрифтом текст рассматривается в информационной архитектуре на другом уровне и, следовательно, не выделяется жирным шрифтом и является регулярным в одной строке, поэтому его можно разделить на две метки /textView, один обычный и выделенный жирным курсивом. И используйте редактор, чтобы выбрать стили шрифта.

Ответ 18

С Swift 5

Для стиля = BOLD

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

Для стиля = средний

label.font = UIFont(name:"HelveticaNeue-Medium", size: 15.0)

Для стиля = тонкий

label.font = UIFont(name:"HelveticaNeue-Thin", size: 15.0)

Ответ 19

Просто хочу упомянуть об этом,

UIFont.systemFont(ofSize: 16, weight: UIFont.Weight.bold)
UIFont.boldSystemFont(ofSize: 16)

У них другой результат...