私は、文中の最初の単語の色を、文の残りの色と異なる色にする方法を探しています。 METHOD_001最初の色は文字列全体を白くし、最初の8文字は赤色にします。 METHOD_002残りの文字を計算するために文字列の長さを使用する前に最初の8文字を赤で色付けし、白色にします。addAttributeを使用してNSMutableAttributedString全体を変更します。
METHOD_001は間違いなくベストですが、私は簡単な方法がある場合、私は範囲を取り、単に文字列全体に属性を適用していなかったNSMutableAttributedString addAttribute:
を見つけるために期待していた好奇心、それは少し思えますNSMutableAttributedString
のすべての変更で範囲を指定する必要があることを監視していますが、何か不足していますか?
NB:コードには、読みやすいようにハードコードされた値が含まれています。
// METHOD_001
NSMutableAttributedString *attrString_001 = [[NSMutableAttributedString alloc] initWithString:@"Distance 1720 mm" attributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
[attrString_001 addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 8)];
[[self nameLabel] setAttributedText:attrString_001];
// METHOD_002
NSString *string = @"Distance 1720 mm";
NSUInteger stringLength = [string length];
NSMutableAttributedString *attrString_002 = [[NSMutableAttributedString alloc] initWithString:string];
[attrString_002 addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 8)];
[attrString_002 addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(9, (stringLength-9))];
[[self distanceLabel] setAttributedText:attrString_002];
METHOD_007と呼ばれるものがない場合は、001 –