1. ホーム
  2. ios

[解決済み] NSAttributedStringで文字列の色を変更する?

2022-04-26 14:10:16

質問

アンケート用のスライダーがあり、スライダーの値に応じて次の文字列を表示します: "非常に悪い、悪い、大丈夫、良い、非常に良い".

以下は、スライダーのコードです。

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

赤は「Very Bad」、オレンジは「Bad」、黄色は「Okay」、緑は「Good」、そして「Very Good」である。

の使い方がよくわからない。 NSAttributedString を、これを実現するために。

どのように解決するのですか?

を使用する必要はありません。 NSAttributedString . 必要なのは、適切なラベルを貼るだけの簡単なものです。 textColor . さらに、このシンプルなソリューションは、iOS 6だけでなく、すべてのバージョンのiOSで動作します。

しかし、無用な希望があれば 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;