2011-09-29 146 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

這應該是被接受的答案 –