2015-04-16 75 views
0

我想讓UILabel的文本部分以不同的背景顏色出現。我看到一些例子改變字體和文字顏色,但我找不到任何有關改變背景顏色的事情。 有沒有任何可能的方法來做到這一點?是否可以更改UILabel中文本部分的背景顏色?如何?

謝謝。

如果能夠提供一個代碼示例,這將是巨大的。

+3

使用'NSAttributedString'? – trojanfoe

+0

'NSAttributedString'應該適合你。但是如果背景顏色的變化不是直接出現在兩個字符之間,那麼使用標籤後面的另一個視圖並設置該視圖的背景顏色。 – rmaddy

+0

@trojanfoe是我見過的例子使用'NSAttributedString'。我想要做的就是突出「UILabel」中的一些文本。 – Ismail

回答

1

是的,使用屬性字符串。

let textColor = UIColor(red: 0.175, green: 0.458, blue: 0.831, alpha: 1) 
    let attributes = [ 
    NSForegroundColorAttributeName : textColor, 
    NSFontAttributeName : font, 
    NSTextEffectAttributeName : NSTextEffectLetterpressStyle 
    ] 
    let attributedString = NSAttributedString(string: note.title, attributes: attributes) 

    labelText.attributedText = attributedString 

//編輯爲ObjC Answer

NSMutableAttributedString* string = [[NSMutableAttributedString alloc]initWithString:@"you string"]; 
[string addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, string.length)]; 
[string addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:NSMakeRange(0, string.length)];//TextColor 
[string addAttribute:NSUnderlineStyleAttributeName value:underlineNumber range:NSMakeRange(0, string.length)];//Underline color 
[string addAttribute:NSUnderlineColorAttributeName value:[UIColor lightGrayColor] range:NSMakeRange(0, string.length)];//TextColor 
labelText.attributedText = string; 
+0

這個代碼有一個Objective-c版本嗎?在我看來,它會改變前景色「NSForegroundColorAttributeName」。 – Ismail

+1

我沒有提供代碼來完成你想要的。這是關於你的。我提供了一個關於如何在Swift和ObjC中使用屬性字符串的例子。深入瞭解所有可能性的文檔以進一步理解屬性字符串的強大功能。 ;-) https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSMutableAttributedString_Class/ –

+0

謝謝你提供的示例和文檔。 – Ismail

相關問題