2011-09-29 24 views
6

UILabel(UIWebViewは使用できません)を使用してテキストを表示する必要があり、ヘブライ語と英語の両方が含まれることがあります。 UILabelのデフォルト設定を使用すると、文が混ざり合って意味をなさない。私はUILabelにテキストrtlを表示させる方法を見つけられませんでした。右から左UILabels

誰かがこれを行うことを知っていますか、これを実装するコードですか?

答えて

6

このSOをご覧ください。このトピックに関する情報が含まれています。 表示される文字列に\ u200Fというコードを追加することによって、一部の機能が動作するようです。

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

それは働いていたが、 "\ u200Fは" 私たちは、文字列に影響を与えずにこれを削除する方法を、示しているが動作します。 – Sandy

2

これは

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

これは受け入れられる回答である必要があります –