Подтвердить что ты не робот

Есть ли средний шрифт между -systemFontOfSize: и -boldSystemFontOfSize:?

-systemFontOfSize слишком тонкая, а boldSystemFontOfSize слишком толстая. Мне нужно что-то между ними.

Когда я создаю UIFont следующим образом:

[UIFont boldSystemFontOfSize:14];

тогда отладчик печатает эту информацию о шрифте:

font-family: ".Helvetica NeueUI"; начертание шрифта: жирный; font-style: normal; font-size: 14px

Иногда шрифты имеют средний размер шрифта. Как создать шрифт этого типа, но со средним весом?

4b9b3361

Ответ 1

Вызов NSLog(@"%@", [UIFont fontNamesForFamilyName:@"Helvetica Neue"]); печатает все доступные стили шрифтов для Helvetica Neue, среди них HelveticaNeue-Medium, который похож на тот, который вы хотите:

UIFont *font = [UIFont fontWithName:@"HelveticaNeue-Medium" size:14.0f];

Если вы хотите, чтобы шрифт также изменился при изменении системного шрифта (например, с помощью устройств сетчатки от Helvetica до Helvetica Neue), вы можете сначала получить системный шрифт, а затем взять его familyName и pointSize, чтобы получить один со средним весом с помощью + fontNamesForFamilyName, а затем + fontWithName:size:

Ответ 2

Начиная с iOS 8.2 вы можете использовать:

[UIFont systemFontOfSize:14 weight:UIFontWeightMedium];

Ответ 3

Swift 2.0, xcode7.1

if #available(iOS 8.2, *) {
   titleLabel?.font = UIFont.systemFontOfSize(15, weight: UIFontWeightMedium)
} else {
    titleLabel?.font = UIFont(name: "HelveticaNeue-Medium", size: 15)
}

Ответ 4

Swift 3:

UIFont.systemFont(ofSize: 14, weight: UIFontWeightMedium)

Ответ 5

С помощью Swift 4 или 5 добавьте это расширение:

extension UIFont {
    class func mediumSystemFont(ofSize pointSize:CGFloat) -> UIFont {
        return self.systemFont(ofSize: pointSize, weight: .medium)
    }
}

Затем:

myLabel.font = UIFont.mediumSystemFont(ofSize: 16)

Тот же принцип работает с полужирным, черным и т.д., Проверьте UIFont. Вес

Ответ 6

Swift 2.3 и не изменяя размер шрифта:

extension UIFont {
    var mediumFont: UIFont {
        return UIFont.systemFontOfSize(self.pointSize, weight: UIFontWeightMedium)
    }
}

Использовать с:

titleLabel.font = titleLabel.font.mediumFont