2011-09-29 27 views
6

Ho bisogno di visualizzare un testo usando un UILabel (non posso usare UIWebView), e a volte contiene sia l'ebraico che l'inglese. usando le impostazioni predefinite di UILabel la frase viene mescolata e non ha senso. Non sono riuscito a trovare un modo per rendere UILabel visualizzare il testo rtl.UILabels da destra a sinistra

Qualcuno sa comunque farlo o un codice che implementa questo?

risposta

6

Dai un'occhiata a questo SO, contiene alcune informazioni su questo argomento che potrebbero aiutarti. Sembra funzionare per alcuni aggiungendo il codice \ u200F alle stringhe da visualizzare.

NSString *RTFstr = "1. בבוקר"; //This could be any right-to-left string 
NSString *directionalString = [@"\u200F" stringByAppendingString:[note text]]; 
[someUITextView setString:directionalString]; 
+1

Ha funzionato, ma "\ u200F" sta mostrando, come possiamo rimuovere questo senza influenzare stringa. – Sandy

2

Ciò funzionerà

-(void)fnForWritingDirection:(UILabel*)label textFor:(NSString *)stringForText{ 

    NSMutableAttributedString* attrStr = [[NSMutableAttributedString alloc] initWithString: [stringForText stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; 

    [paragraphStyle setBaseWritingDirection:NSWritingDirectionRightToLeft]; 

    [attrStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [attrStr length])]; 

    label.attributedText=attrStr; 

} 
+0

che dovrebbe essere la risposta accettata –

Problemi correlati