2013-07-16 100 views

回答

10
NSString *twoWords = @"Green Red"; 
    NSArray *components = [twoWords componentsSeparatedByString:@" "]; 
    NSRange greenRange = [twoWords rangeOfString:[components objectAtIndex:0]]; 
    NSRange redRange = [twoWords rangeOfString:[components objectAtIndex:1]]; 

    NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:twoWords]; 

    [attrString beginEditing]; 
    [attrString addAttribute: NSForegroundColorAttributeName 
         value:[UIColor greenColor] 
         range:greenRange]; 

    [attrString addAttribute: NSForegroundColorAttributeName 
         value:[UIColor redColor] 
         range:greenRange]; 

    [attrString endEditing]; 

然後可以使用直接在一個UILabel attrString(>的iOS 6,檢查Apple Documentation)。

+0

kCTStrokeColorAttributeName < - 看起來像設置統計員的... ...的addAttribute需要一個字符串值,統計員是號碼 –

+0

@A'saDickens你是對的。只是改變了。 – cescofry

0

This question地址獲取字符串的一部分,你需要做的。儘管如此,您可以使用this question來了解如何更改顏色,而不是使用BOLD修改文本。

7

最簡單的方法是在iOS 6.0或更高版本中使用。你會分配其中的一個,並在titleLabel(或任何其他持有文本的對象)中分配UITableViewCell。如果您使用的titleLabel你可以這樣做:

[cell.titleLabel setAttributedText:yourAttributedString]; 

要設置與NSAttributedString的顏色,這樣做:

NSMutableAttributedString* attributedString = [[NSMutableAttributedString alloc] initWithString:stringToManipulate]; 
[attributedString beginEditing]; 
[attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(0, widthOfFisrtWord)]; 
[attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(widthOfFisrtWord, widthOfSecondWord)]; 
[attributedString endEditing]; 

注意上面使用NSMakeRange提供的範圍不會是您需要的範圍。您必須根據自己的需要更改範圍,具體取決於兩個單詞之間是否有空格或其他字符。

蘋果文檔:

+0

哦,非常感謝編輯:D我只是看着如何做到這一點不集羣的答案,我能夠點擊編輯,看看你做了格式化,非常有義務 –

+0

糾正我,如果我錯了,但NSAttributedString不是這樣做的方式。鏈接的文檔似乎無法指定屬性的範圍。但是,您的代碼使用NSMutableAttributedString,其文檔的範圍是:https://developer.apple.com/library/mac/documentation/cocoa/reference/foundation/classes/NSMutableAttributedString_Class/Reference/Reference.html#//apple_ref/occ/instm/NSMutableAttributedString/addAttribute:值:範圍: – prewett

+0

這是正確的,在我寫了答案的時候,我想我沒有注意 –

相關問題