Имена шрифтов iOS: тире против тире

Я обнаружил, что Core Graphics хочет использовать разные имена шрифтов, чем то, что принимает UIFont.

Например, CG принимает «Helvetica Bold», но не «Helvetica-Bold», тогда как UIFont – наоборот.

Есть ли исчерпывающий список шрифтов, доступных в Интернете, который разъясняет, какие имена подходят для каждого контекста?

Благодарю.

Вот код из этой ссылки, но затянулся. Это только для UIFont :

 for (NSString *familyName in [UIFont familyNames]) { NSLog(@"----------------"); NSLog(@"FAMILY: %@", familyName); for(NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) { NSLog(@" %@", fontName); } } 

но эти имена, похоже, отлично работают и для CGFontRef , поэтому используйте (например):

 CGContextSelectFont (context, "Didot-Bold", FONT_SIZE, kCGEncodingMacRoman); 

конечно, вы можете использовать font.fontName.UTF8String чтобы получить из UIFont ….

Имя шрифта, используемое UIFont, зависит от создателя шрифта. Иногда имя шрифта для курсива заканчивается на Ita а иногда и -Italic – для этого нет четкого правила именования. Я придумал реализацию, которая обрабатывает все различия и возвращает нужный UIFont для всех сочетаний стиля шрифта и семейства шрифтов – поэтому вам не нужно жестко указывать имя шрифта. Вы можете увидеть это на http://eclipsesource.com/blogs/2012/07/26/uifont-from-a-css-definition/

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

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