从右到左UILabels
问题描述:
我需要使用UILabel显示文本(不能使用UIWebView),它有时包含希伯来语和英语。使用UILabel的默认设置,这个句子变得混乱起来,没有任何意义。我没有找到使UILabel显示文本rtl的方法。从右到左UILabels
无论如何,任何人都知道要做到这一点,或实现这一目标的代码?
答
看看这个SO,它包含一些关于这个问题的信息,可能会帮助你。 通过将代码\ u200F添加到要显示的字符串,它似乎可以工作。
NSString *RTFstr = "1. בבוקר"; //This could be any right-to-left string
NSString *directionalString = [@"\u200F" stringByAppendingString:[note text]];
[someUITextView setString:directionalString];
答
这将工作
-(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
这应该是被接受的答案 –
它的工作,但 “\ u200F” 正显示出,我们如何才能消除这种不影响字符串。 – Sandy