2014-09-24 6 views
9

Я пытаюсь проанализировать свою собственную строку HTML в NSAttributedString для рендеринга в UITextView.Как применить полужирный и курсивный шрифт к NSAttributedString?

Так, если строка выглядит как таковой:

<strong><em> Это должно быть как жирным шрифтом и курсивом </strong></em>

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

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

ответ

11

Вот мой ответ после просмотра различных источников:

UIFontDescriptor *fontDescriptor = [UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleBody]; 

UIFontDescriptor *changedFontDescriptor;  
NSDictionary *attributes; 

uint32_t existingTraitsWithNewTrait = [fontDescriptor symbolicTraits] | UIFontDescriptorTraitBold | UIFontDescriptorTraitItalic; 
changedFontDescriptor = [fontDescriptor fontDescriptorWithSymbolicTraits:existingTraitsWithNewTrait]; 

UIFont *updatedFont = [UIFont fontWithDescriptor:changedFontDescriptor size:0.0]; 

attributes = @{ NSFontAttributeName : updatedFont }; 

attributedString = [[NSAttributedString alloc] initWithString:yourString attributes:attributes]; 
Смежные вопросы