2013-03-10 6 views
9

Ich versuche, einige Text in einem Etikett zu unterstreichen. Ich weiß jedoch nicht, wie man den Bereich des gesamten Textes im Etikett erhält. Das ist was ich bisher habe:Wie kann ich Text in iOS 6 unterstreichen?

NSMutableAttributedString *mat = [self.tableLabel.attributedText mutableCopy]; 
[mat addAttributes:@{NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle)} range://??]; 
self.tableLabel.attributedText = mat; 

Was soll ich für den Bereich setzen?

+0

http://stackoverflow.com/questions/2711297/underline-text-in- uilabel –

Antwort

22

Für den Bereich Sie können verwenden:

NSMakeRange (0, mat.length); 

So:

NSMutableAttributedString *mat = [self.tableLabel.attributedText mutableCopy]; 
[mat addAttributes:@{NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle)} range:NSMakeRange (0, mat.length)]; 
self.tableLabel.attributedText = mat; 
+2

NSMakeRange() ist wohl besser, da es nicht auf impliziten C99-Literalen, die einige Probleme haben, verlassen. –

+0

Wahr, Update-Antwort. – Ares

+0

funktioniert super! Wie funktioniert NSMakeRange? – user1420042

0
NSMutableAttributedString *attributedString =[[NSMutableAttributedString alloc] initWithString:strComplete]; 

[attributedString addAttribute:NSUnderlineStyleAttributeName 
         value:@(NSUnderlineStyleSingle) 
         range:[strComplete rangeOfString:strFirst]]; 

[attributedString addAttribute:NSForegroundColorAttributeName 
         value:[UIColor redColor] 
         range:[strComplete rangeOfString:strSecond]]; 


cell.textLabel.attributedText = attributedString; 
+0

Bitte beachten Sie, dass Code-Only-Antworten nicht empfohlen werden. – GhostCat