#ios #objective-c #xcode8 #ios10 #nsattributedstring
#iOS #objective-c #xcode8 #ios10 #nsattributedstring
Вопрос:
У меня есть textview, в котором я анализирую и HTML-контент, и он работает нормально. Но теги, помеченные курсивом, не работают. Я использую пользовательский шрифт. Ниже приведен пример кода:
NSString *messages = @"<b>Bold</b><br><i>Italic</i><p> <del>Deleted</del><p>List<ul><li>Coffee</li><li type='square'>Tea</li></ul><br><a href='URL'>Link </a>";
NSString *stringWithFont = [NSString stringWithFormat:@"<span style="font-family: OpenSans; font-size: 14">%@</span>", messages];
NSAttributedString *attributedString = [[NSAttributedString alloc]
initWithData: [stringWithFont dataUsingEncoding:NSUnicodeStringEncoding]
options: @{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType }
documentAttributes: nil
error: nil
];
_notificationTextView.attributedText = attributedString;
Вот как это выглядит, обратите внимание, что курсив не сработал.
Обновить
В настоящее время мой проект включает в себя все шрифты Opensans, такие как обычный, курсивный, жирный, полужирный и т.д. Итак, если я удалю светлый шрифт или его ссылку из своего проекта, похоже, это сработает. Похоже на какой-то странный конфликт с обычным и легким шрифтом. У кого-нибудь есть идеи?
Комментарии:
1. ваш пакет содержит этот курсивный шрифт?
2. Да, он добавлен в комплект, это файл шрифта, который я использую mediafire.com/file/cpjerw9wwipppmq/OpenSansFont.zip
3. и он также добавлен в список, верно?
4. Да, он также добавлен в plist. Если вам интересно, вы можете ознакомиться с демонстрационным проектом по этой проблеме здесь: mediafire.com/file/d1q5ipxwjqfd62r/CustomFontTest.zip
5. @ravi.p Не похоже, что курсивный шрифт вообще не работает, поскольку в настоящее время я добавляю его в строку HTML для использования OpenSans. Поэтому он должен автоматически определять жирный курсив и т. Д. Если я укажу использовать OpenSans-Italic, это сработает, но все тексты выделены курсивом.
Ответ №1:
Это работает для меня. Отображение курсивного текста. Использовать
self.txtView.attributedText=attributedString;