Как заставить DTCoreText использовать системный шрифт?

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

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

Я старался:

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

Но он по-прежнему отображается как Times New Roman.

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


person Doug Smith    schedule 10.02.2015    source источник
comment
Вы пробовали заменить fontName на fontFamily? DCCoreText, кажется, ожидает семейство шрифтов, и вы предоставляете имя шрифта.   -  person sha    schedule 10.02.2015
comment
@sha Вы имеете в виду обратное? Я предоставляю fontFamily.   -  person Doug Smith    schedule 10.02.2015
comment
То: [UIFont systemFontOfSize:[UIFont systemFontSize]].fontName - заменить fontName в конце   -  person sha    schedule 10.02.2015
comment
Я не вижу fontFamily как атрибут UIFont.   -  person Doug Smith    schedule 10.02.2015
comment
Ух ты! Это сработало восхитительно. Не могли бы вы связать это как ответ?   -  person Doug Smith    schedule 10.02.2015
comment
Сделанный. Опубликовано как ответ   -  person sha    schedule 10.02.2015


Ответы (1)


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

[UIFont systemFontOfSize:[UIFont systemFontSize]].familyName
person sha    schedule 10.02.2015