我正在尋找一種將句子中第一個單詞的顏色與其餘句子顏色相區別的方法。 METHOD_001第一種顏色的整個字符串白色,然後重新着色前8個字符紅色。 METHOD_002使用字符串長度計算其餘字符並將它們着色爲白色之前,將前8個字符的顏色設爲紅色。使用addAttribute修改整個NSMutableAttributedString:
METHOD_001肯定是最好的,但我很好奇,如果有一個更簡單的方法,我希望找到一個NSMutableAttributedString addAttribute:
未採取一系列和剛剛應用的屬性整個字符串,它似乎有點對NSMutableAttributedString
的所有修改都要求您指定範圍的疏忽,我是否錯過了某些內容?
注意:代碼包括硬編碼的值,以幫助可讀性。
// 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 – 2013-04-10 16:46:18