Справа налево UILabels - PullRequest
       9

Справа налево UILabels

6 голосов
/ 29 сентября 2011

Мне нужно отобразить текст с помощью UILabel (не могу использовать UIWebView), и он иногда содержит иврит и английский. при использовании настроек UILabel по умолчанию предложение перепутывается и не имеет смысла. Мне не удалось найти способ заставить UILabel отображать текст RTL.

Кто-нибудь знает, как это сделать, или код, который реализует это?

Ответы [ 2 ]

6 голосов
/ 29 сентября 2011

Посмотрите на это SO , оно содержит некоторую информацию по этому вопросу, которая может вам помочь.Кажется, что это работает для некоторых, добавляя код \ u200F к отображаемым строкам.

NSString *RTFstr = "1. בבוקר"; //This could be any right-to-left string
NSString *directionalString = [@"\u200F" stringByAppendingString:[note text]];
[someUITextView setString:directionalString];
2 голосов
/ 07 мая 2015

Это будет работать

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

}
...