2011-09-29 13 views
6

Necesito mostrar un texto usando un UILabel (no puedo usar UIWebView), ya veces contiene hebreo e inglés. utilizando la configuración predeterminada de UILabel, la oración se mezcla y no tiene sentido. No he encontrado una manera de hacer que UILabel muestre el texto rtl.De derecha a izquierda UILabels

¿Alguien sabe de todos modos para hacer eso, o un código que implementa esto?

Respuesta

6

Eche un vistazo a este SO, contiene algo de información sobre este tema que podría ayudarlo. Parece que funciona para algunos agregando el código a las cadenas que se mostrarán.

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

Funcionó, pero "\ u200F" está mostrando, cómo podemos eliminar esta sin afectar cadena. – Sandy

2

Esto funcionará

-(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

que debería ser la respuesta aceptada –

Cuestiones relacionadas