我正在使用UILable來顯示數據。 我有一個NSString @「你好,你好嗎?」。我想用不同的顏色顯示每個單詞。例如你好 - 在紅色,如何在黃色等如何在UITextfield中顯示不同顏色的字符串的每個字
我試了很多,但我沒有找到任何解決方案。對任何人有任何想法我如何獲得解決方案?
在此先感謝。
我正在使用UILable來顯示數據。 我有一個NSString @「你好,你好嗎?」。我想用不同的顏色顯示每個單詞。例如你好 - 在紅色,如何在黃色等如何在UITextfield中顯示不同顏色的字符串的每個字
我試了很多,但我沒有找到任何解決方案。對任何人有任何想法我如何獲得解決方案?
在此先感謝。
只需使用:
- (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];
}
我想補充
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];
}
試試吧!
http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSAttributedString_Class/ – viral