2015-02-10 1 views
2

Я хочу использовать DTCoreText в своем приложении для преобразования HTML в NSAttributedString, но я не могу понять, как использовать системный шрифт (начиная с iOS 8: Helvetica Neue) в качестве базового шрифта. По умолчанию DTCoreText, похоже, создает NSAttributedString с шрифтом Times New Roman.Как сделать DTCoreText использовать системный шрифт?

Я бы предпочел не жестко кодировать его. Если Apple снова обновит свой шрифт (они ранее обновили его с Helvetica до Helvetica Neue), я не хочу заменять все его экземпляры или иметь кучу условностей в зависимости от версии ОС, запускающей код.

Я пробовал:

NSDictionary *options = @{ 
    DTUseiOS6Attributes: @(YES), 
    DTDefaultFontFamily: [UIFont systemFontOfSize:[UIFont systemFontSize]].fontName 
}; 

Но он все еще делает, как Times New Roman.

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

+0

Вы пытались заменить 'fontName' на' fontFamily'? DCCoreText, похоже, ожидает семейство шрифтов, и вы предоставляете имя шрифта. – sha

+0

@sha Вы имеете в виду обратное? Я предоставляю fontFamily. –

+0

Это: '[UIFont systemFontOfSize: [UIFont systemFontSize]]. FontName' - заменить fontName в конце – sha

ответ

2

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

[UIFont systemFontOfSize:[UIFont systemFontSize]].familyName