2014-10-22 3 views
-1

Я новичок в iOS Development .. Я не могу заставить мои строки получить BOLD.пытается сделать динамические тексты NSString жирным шрифтом

Заранее благодарен! Вот мой код

- (void)viewDidLoad { 
[super viewDidLoad]; 

NSString *sentence = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%@%@%@%@", self.name, self.adjective, self.noun, self.verb]]; 

NSMutableAttributedString *finalSentence = [[NSMutableAttributedString alloc] initWithString:sentence]; 

NSRange nameRange = NSMakeRange(0, self.name.length); 
NSRange adjectiveRange = NSMakeRange(self.name.length, self.adjective.length); 
NSRange nounRange = NSMakeRange((self.adjective.length + self.name.length), self.noun.length); 
NSRange verbRange = NSMakeRange((self.adjective.length + self.name.length + self.noun.length), self.verb.length); 

[finalSentence beginEditing]; 

[finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldMT" size:17.0] range:nameRange]; 
[finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldMT" size:17.0] range:adjectiveRange]; 
[finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0] range:nounRange]; 
[finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0] range:verbRange]; 

[finalSentence endEditing]; 

NSString *completeSentence = [finalSentence string]; 

self.resultTextView.text = completeSentence; 

}

ответ

0

Это не случайно, что есть отдельный NSAttributedString класс. completeSentence, который вы извлекаете с использованием свойства атрибута присваиваемой строки string, является простым NSString, не содержит информации о форматировании (потому что он не может).

Вы должны сами присвоить атрибутный объект строки свойству текстового вида attributedText.

0

Вы назначаете текстовую версию вашего приписываемого текста ([finalSentence string]) в свойство обычного текста вашего UITextView.

Вы должны установить приписываемый текст непосредственно в attributedText свойства UITextView -

self.resultTextView.attributedText=finalSentence 
0

Просто позвоните

self.resultTextView.attributedText = finalSentence; 

Вот код, который вам нужно

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    NSString *sentence = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%@%@%@%@", self.name, self.adjective, self.noun, self.verb]]; 

    NSMutableAttributedString *finalSentence = [[NSMutableAttributedString alloc] initWithString:sentence]; 

    NSRange nameRange = NSMakeRange(0, self.name.length); 
    NSRange adjectiveRange = NSMakeRange(self.name.length, self.adjective.length); 
    NSRange nounRange = NSMakeRange((self.adjective.length + self.name.length), self.noun.length); 
    NSRange verbRange = NSMakeRange((self.adjective.length + self.name.length + self.noun.length), self.verb.length); 

    [finalSentence beginEditing]; 

    [finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldMT" size:17.0] range:nameRange]; 
    [finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldMT" size:17.0] range:adjectiveRange]; 
    [finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0] range:nounRange]; 
    [finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0] range:verbRange]; 

    [finalSentence endEditing]; 
    self.resultTextView.attributedText = finalSentence; 
} 
Смежные вопросы