Sto tentando di impostare il colore di sfondo/evidenziare solo il testo all'interno di uno UILabel
. Il problema è che la linea si rompe e gli spazi aggiunti allo UILabel
per mantenere il testo centrato sono anche in evidenza.Evidenzia solo il testo in una UILabel
comunicazione la spaziatura prima dell'ultima riga nella UILabel
viene evidenziato. Inoltre, vengono evidenziati anche l'inizio e la fine di ogni nuova riga.
Sto creando l'esempio precedente con il seguente codice:
-(void)createSomeLabel {
// Create and position my label
UILabel *someLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,
0,
self.view.frame.size.width - 40,
self.view.frame.size.height - 300)];
someLabel.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2);
someLabel.textAlignment = NSTextAlignmentCenter;
someLabel.textColor = [UIColor whiteColor];
someLabel.lineBreakMode = NSLineBreakByWordWrapping;
someLabel.numberOfLines = 0;
[self.view addSubview:someLabel];
// This string will be different lengths all the time
NSString *someLongString = @"Here is a really long amount of text that is going to wordwrap/line break and I don't want to highlight the spacing. I want to just highlight the words and a single space before/after the word";
// Create attributed string
NSMutableAttributedString *someLongStringAttr=[[NSMutableAttributedString alloc] initWithString:someLongString attributes:nil];
// Apply background color
[someLongStringAttr addAttribute:NSBackgroundColorAttributeName
value:[UIColor colorWithWhite:0 alpha:0.25]
range:NSMakeRange(0, someLongStringAttr.length)];
// Set text of label
someLabel.attributedText = someLongStringAttr;
}
L'uscita mi piacerebbe raggiungere è quello di evidenziare solo il testo e gli spazi tra le parole, se v'è una sola spazio. La lunghezza del testo e le dimensioni dello UILabel
saranno costantemente diverse per cui la codifica difficile di una soluzione non è un'opzione, sfortunatamente.
http://iosdevelopertips.com/user-interface/ios-6-attributed-strings-set-text-foreground-background-strikethrough-shadow-stroke-kerning-and-more -part-1.html –
@PavanJangid Non vedo come questi esempi siano diversi da quello che ho fornito. Potresti elaborare? –
@DanielStorm hai provato a impostare il colore di sfondo per l'intervallo di ogni parola anziché per l'intera stringa? – Kreiri