2013-03-29 70 views
0

我正在使用UILable來顯示數據。 我有一個NSString @「你好,你好嗎?」。我想用不同的顏色顯示每個單詞。例如你好 - 在紅色,如何在黃色等如何在UITextfield中顯示不同顏色的字符串的每個字

我試了很多,但我沒有找到任何解決方案。對任何人有任何想法我如何獲得解決方案?

在此先感謝。

+0

http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSAttributedString_Class/ – viral

回答

2

只需使用:

- (IBAction)go:(id)sender { 
    NSMutableAttributedString *string = [[NSMutableAttributedString alloc]initWithString:self.text.text]; 

    NSArray *words=[self.text.text componentsSeparatedByString:@" "]; 

    NSArray *colors=[NSArray arrayWithObjects:[UIColor redColor],[UIColor grayColor],[UIColor blueColor],[UIColor blackColor],[UIColor purpleColor],nil]; 

    for (NSString *word in words) {   
     NSRange range=[self.text.text rangeOfString:word]; 
     [string addAttribute:NSForegroundColorAttributeName value:colors[arc4random()%colors.count] range:range]; 
    } 
    [self.text setAttributedText:string]; 
} 

* Working project here

+0

在這一行中得到崩潰... [string addAttribute:NSForegroundColorAttributeName value:colors [arc4random()%colors.count ]範圍:範圍]; – Ganapathy

+0

@Ganapathy:怎麼樣?有什麼錯誤? –

+0

EXC_BAD_ACCESS(code = 2,access = 0X0)error – Ganapathy

0

我想補充

YOURTEXTFIELD.font=[UIFont fontWithName:@"HelveticaNeue-UltraLight" size:18.0f]; 

或什麼是你想要的字體大小,因爲上面的功能都會有,如果可怕的後果用戶按空格鍵兩次(或有多個空格)。 因此函數將變爲:

代碼:

- (IBAction)go:(id)sender { 
    NSMutableAttributedString *string = [[NSMutableAttributedString alloc]initWithString:self.text.text]; 

    NSArray *words=[self.text.text componentsSeparatedByString:@" "]; 

    NSArray *colors=[NSArray arrayWithObjects:[UIColor redColor],[UIColor grayColor],[UIColor blueColor],[UIColor blackColor],[UIColor purpleColor],nil]; 

    for (NSString *word in words) {   
     NSRange range=[self.text.text rangeOfString:word]; 
     [string addAttribute:NSForegroundColorAttributeName value:colors[arc4random()%colors.count] range:range]; 
YOURTEXTFIELD.font=[UIFont fontWithName:@"HelveticaNeue-UltraLight" size:18.0f]; 

    } 
    [self.text setAttributedText:string]; 
YOURTEXTFIELD.font=[UIFont fontWithName:@"HelveticaNeue-UltraLight" size:18.0f]; 


} 

試試吧!

相關問題