Я некоторое время боролся за это fontDescriptor.withSymbolicTraits
, оно возвращает ноль всякий раз, когда я пытаюсь использовать Жирный или Курсив .
Я использую этот код ниже:
func withTraits(traits:UIFontDescriptor.SymbolicTraits) -> UIFont {
let descriptor = fontDescriptor.withSymbolicTraits(traits)
return UIFont(descriptor: descriptor!, size: 0) //size 0 means keep the size as it is }
func bold() -> UIFont {
return withTraits(traits: .traitBold) }
func italic() -> UIFont {
return withTraits(traits: .traitItalic) }
Но приложение останавливается и показывает эту ошибку (это указывает на fontDescriptor.withSymbolicTraits
):
Неустранимая ошибка: неожиданно обнаружен ноль при развертывании необязательного значения Неустранимая ошибка: неожиданно обнаружен ноль при развертывании необязательного значения
Я также пробовал этот код (который работает на других разработчиках как то, что ячитать онлайн):
var isBold: Bool {
return fontDescriptor.symbolicTraits.contains(.traitBold)
}
var isItalic: Bool {
return fontDescriptor.symbolicTraits.contains(.traitItalic)
}
func setBoldFnc() -> UIFont {
if(isBold) {
return self
} else {
var fontAtrAry = fontDescriptor.symbolicTraits
fontAtrAry.insert([.traitBold])
guard let fontAtrDetails = fontDescriptor.withSymbolicTraits(fontAtrAry) else { return self }
return UIFont(descriptor: fontAtrDetails, size: 0)
}
}
func setItalicFnc()-> UIFont {
if(isItalic) {
return self
} else {
var fontAtrAry = fontDescriptor.symbolicTraits
fontAtrAry.insert([.traitItalic])
guard let fontAtrDetails = fontDescriptor.withSymbolicTraits(fontAtrAry) else { return self }
return UIFont(descriptor: fontAtrDetails, size: 0)
}
}
Кто-нибудь испытывал это в iOS 12 и выше?
Я также читал, что в iOS 8 была ошибка, связанная с этим, но говорит, что это было исправлено в более поздней версии:
https://code -examples.net / en/ q / 18c6177
Дескриптор шрифта возвращает nil в iOS 8
* ПРИМЕЧАНИЕ : я использовал только пользовательский шрифт "-Regular" файл. Потому что некоторые шрифты не имеют стиля шрифта "-Italic" или "-Bold".
Пример: шрифт Archivo Black и шрифт Oswald