我有一个用于调查的滑块,它根据滑块的值显示以下字符串:“非常差、差、好的、好、非常好”。

这是滑块的代码:

- (IBAction) sliderValueChanged:(UISlider *)sender {
    scanLabel.text = [NSString stringWithFormat:@" %.f", [sender value]];
    NSArray *texts=[NSArray arrayWithObjects:@"Very Bad", @"Bad", @"Okay", @"Good", @"Very Good", @"Very Good", nil];
    NSInteger sliderValue=[sender value]; //make the slider value in given range integer one.
    self.scanLabel.text=[texts objectAtIndex:sliderValue];
}

我希望“非常差”为红色,“差”为橙色,“好的”为黄色,“好”和“非常好”为绿色。

我不明白如何使用 NSAttributedString 来完成这项工作。

最佳答案

不需要使用 NSAttributedString 。您所需要的只是一个带有正确 textColor 的简单标签。此外,这个简单的解决方案适用于所有版本的 iOS,而不仅仅是 iOS 6。

但是,如果您不必要地希望使用 NSAttributedString ,您可以执行以下操作:

UIColor *color = [UIColor redColor]; // select needed color
NSString *string = ... // the string to colorize
NSDictionary *attrs = @{ NSForegroundColorAttributeName : color };
NSAttributedString *attrStr = [[NSAttributedString alloc] initWithString:string attributes:attrs];
self.scanLabel.attributedText = attrStr;

关于ios - 使用 NSAttributedString 更改字符串颜色?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14287386/

10-13 04:07