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

这应该是被接受的答案 –

相关问题