UIFont fontWithName return nil

Этот код возвращает Me nil в шрифте.

Я добавляю открытый файл sans ttf в папку проекта.

Что мне не хватает?

UIFont *font = [UIFont fontWithName:@"OpenSans-Bold" size:fontSize];
 if (font)
 {
 [str addAttribute:NSFontAttributeName value:[UIFont fontWithName:font size:fontSize] range:NSMakeRange(location, length)];
 label.attributedText = str;
 }

1 ответ

Прежде всего, ваши .ttf файлы зарегистрированы в вашем файле .plist? Во-вторых, ваши шрифты добавлены в " Ресурсы копирования ресурсов"? (в разделе Target- > Build Phases)

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

for (NSString* fontFamily in [UIFont familyNames]) {
 NSArray *fontNames = [UIFont fontNamesForFamilyName:fontFamily];
 NSLog (@"%@: %@", fontFamily, fontNames);
}

Edit

Поскольку этот ответ немного старый, я обновил его соответствующим ответом для Swift 3.0:

_ = UIFont.familyNames.map {
 let fontNames = UIFont.fontNames(forFamilyName: $0)
 print("Font Family: \($0), Font Names: \(fontNames)\n")
}

licensed under cc by-sa 3.0 with attribution.