Intereting Posts
iOS – TableView – Получить индекс раздела заголовка при нажатии кнопки Затухать альфа-значение диапазона текста в UITextView iOS – Как использовать NFC для распознавания тегов NFC? Авторизация пользователя в приложении iOS Как я должен идеально создавать хорошо структурированный UITableViewDataSource? Загрузите iOS 7.1 симулятор в XCode 6.2 для автономной установки Как удалить приложение из симулятора iPhone с помощью командной строки? Редактирование XML-раскадровки с помощью кода Фактический размер экрана больше, чем я вижу объективный C Xcode как же кадр UILabel получает изменено на изменение точки привязки улучшить анимацию при отображении текстового представления поверх клавиатуры Действительное использование синглтона, Objective C как создать вращающийся вид компаса, похожий на управление обрезкой / поворотом iPhone Mjpeg разбился о последних мобильных Safari? Email Composer с вложениями iOS Phonegap

Каков наилучший способ определения поддерживаемых стилей шрифта на iOS?

Я не могу найти простой способ определить, поддерживает ли шрифт жирный или курсивный стиль шрифта в iOS. Мое текущее решение основано на попытке создать CTFont с желаемым стилем шрифта:

CTFontRef ctFont = CTFontCreateWithName(fontName, pointSize, NULL); CTFontRef boldFont = CTFontCreateCopyWithSymbolicTraits(ctFont, 0.0, NULL, kCTFontBoldTrait, kCTFontBoldTrait); if (boldFont) { // supports bold font face } 

Хотя это прекрасно работает, это как-то не похоже на лучший способ сделать это. Есть ли способ лучше?

Если вы используете UIFont, я думаю, вы могли бы просто перебрать fontNamesForFamilyName:

 for (NSString *fontName : [UIFont fontNamesForFamilyName:fontName]) { if ([fontName rangeOfString:@"Bold"].location != NSNotFound) { //supports bold font face } } 

Может быть, не намного лучше … И жирный шрифт не всегда определяется текстом «Жирный», некоторые используют свет и средний. http://www.iphonedevsdk.com/forum/iphone-sdk-development/6000-list-uifonts-available.html

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

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