0

属性付きの文字列を作成する必要があります:

NSString *forecastLow = [forecast valueForKey: @"low"];
NSString *forecastHigh = [forecast valueForKey: @"high"];
self.forecastLabel.font = [UIFont fontWithName: @"PT Sans" size: 13];
NSMutableAttributedString *attriburedString = [[NSMutableAttributedString alloc] initWithString: [NSString stringWithFormat: @"%@/%@\u00B0", forecastLow, forecastHigh]];
[attriburedString addAttribute: NSForegroundColorAttributeName
                         value: [UIColor colorWithRed: 0.f green: 0.f blue: 0.f alpha: 1.f]
                             range: NSMakeRange(0, [forecastLow length])];
 attriburedString addAttribute: NSForegroundColorAttributeName
                             value: [UIColor colorWithRed: 10 green: 10 blue: 10 alpha: 1]
                             range: NSMakeRange([forecastLow length], [attriburedString length] - 1)];
 self.forecastLabel.attributedText = attriburedString;

しかし、その 2 番目の部分は画面に表示されず、白色だけです。属性付きの文字列のログを作成すると、完全な文字列が表示されます。どうしたの?

4

1 に答える 1

2

2 番目の色を正しく作成していません。これ:

[UIColor colorWithRed: 10 green: 10 blue: 10 alpha: 1]

次のようにする必要があります。

[UIColor colorWithRed: 10/255.0 green: 10/255.0 blue: 10/255.0 alpha: 1]

値は 0.0 から 1.0 の範囲である必要があります。1.0 を超えるものはすべて 1.0 として扱われるため、コードは白色 (すべて 1.0) を指定しました。

于 2013-10-24T15:17:00.720 に答える