2

Вот мой код, который я пытаюсь:Как показать Жирный и курсив как в Мой NSString без ThirdParty Libary в Objective-C

NSString *strFirst = [NSString stringWithFormat:@"The App feature is only available to users while at "]; 
NSString *strAreaName = kAreaName; 
NSRange boldedRange = [strAreaName rangeOfString:strAreaName]; 

NSMutableAttributedString *newAttString = [[NSMutableAttributedString alloc] initWithString:strFirst]; 
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:strAreaName]; 
UIFont *fontText = [UIFont boldSystemFontOfSize:17.0]; 

NSDictionary *dictBoldText = [NSDictionary dictionaryWithObjectsAndKeys:fontText, NSFontAttributeName, nil]; 
[attrString setAttributes:dictBoldText range:boldedRange]; 

[newAttString appendAttributedString:attrString]; 

[lblFirst setAttributedText:newAttString]; 

Выход:
Функция App доступна только для пользователей, в то время как в Америке

Но я хочу Америку в Жирный и курсив обоих.

Просьба направить меня в мою строку.

Спасибо,
Mihir

+0

Используйте шрифт полужирным и курсивом. – Larme

+0

У вас будет сочетание Bold и Italic для каждого шрифта. –

+1

'UIFont * boldFont = [UIFont boldSystemFontOfSize: 17.0]; UIFontDescriptorSymbolicTraits traits = [[boldFont fontDescriptor] symbolicTraits] | UIFontDescriptorTraitItalic; UIFontDescriptor * fontDescriptor = [[boldFont fontDescriptor] fontDescriptorWithSymbolicTraits: черты]; UIFont * boldAndItalicFont = [UIFont fontWithDescriptor: fontDescriptor size: 17]; ' – Larme

ответ

1

Может быть, вы можете попробовать ниже код:

//----Creating font dictionary for bold-italic text 

UIFontDescriptor *fontDescriptor = [UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleBody]; 

UIFontDescriptor *fontDescriptorNew; 
NSDictionary *dictBoldItalicText; 

uint32_t NewStyles = [fontDescriptor symbolicTraits] | UIFontDescriptorTraitBold | UIFontDescriptorTraitItalic; 
fontDescriptorNew = [fontDescriptor fontDescriptorWithSymbolicTraits:NewStyles]; 
UIFont *updatedFont = [UIFont fontWithDescriptor:fontDescriptorNew size:17.0];//set your font size 
dictBoldItalicText = @{ NSFontAttributeName : updatedFont }; 

//---------- 

NSString *strFirst = [NSString stringWithFormat:@"The App feature is only available to users while at "]; 
NSString *[email protected]"America"; 

NSRange boldedRange = [strAreaName rangeOfString:strAreaName]; 

NSMutableAttributedString *newAttString = [[NSMutableAttributedString alloc] initWithString:strFirst]; 
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:strAreaName]; 


[attrString setAttributes:dictBoldItalicText range:boldedRange];//Assigning bold-italic attribute dictionary 

[newAttString appendAttributedString:attrString]; 

[lblFirst setAttributedText:newAttString]; 

Протестировано и работает нормально.

+0

yup это хорошо работает. Спасибо. :) –

+1

Отлично, рад помочь: -) @ MihirOza –

2

Его можно с из библиотеки третьей стороны, вы измените значение свойства ярлыка в атрибуте инспекторе же, как показано ниже прикрепленного изображения. enter image description here

+0

Я использую одну метку. Как это возможно с помощью инспектора атрибутов? –

+0

Я думаю, что это не сработает с динамикой. См. Мой вопрос. –

1

Это должно работать:

NSString *strAreaName = @"America"; 
NSString *html = [NSString stringWithFormat:@"<html><font size='7' face='Helvetica'>The App feature is only available to users while at <b><i>%@</i></b></font><html>", strAreaName]; 
NSError *err = nil; 
    lbl.attributedText = 
    [[NSAttributedString alloc] 
    initWithData: [html dataUsingEncoding:NSUTF8StringEncoding] 
    options: @{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } 
    documentAttributes: nil 
    error: &err]; 

Прикрепление выход:

enter image description here

+0

, но шрифт отличается. В любом случае спасибо за вашу помощь. Я получил свой ответ. –

+1

Добро пожаловать. Вы можете установить любой шрифт, который вы хотите в самом html :) – Nitish

+0

Как установить шрифт по умолчанию? –

1

плз использовать этот код

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 }; 

NSAttributedString * newAttStringd = [[NSAttributedString alloc] initWithString:@"America" attributes:attributes]; 
    lbl.attributedText = newAttStringd; 

 Смежные вопросы

  • Нет связанных вопросов^_^