我需要使用UILabel显示文本(不能使用UIWebView),它有时包含希伯来语和英语。使用UILabel的默认设置,句子变得混乱,没有意义。我没有找到一种方法来使UILabel显示文本rtl。
有人知道这样做,还是实现这个的代码?
答案 0 :(得分:6)
查看此SO,其中包含有关此主题的一些信息,可能会对您有所帮助。 通过将代码\ u200F添加到要显示的字符串中,它似乎适用于某些人。
NSString *RTFstr = "1. בבוקר"; //This could be any right-to-left string
NSString *directionalString = [@"\u200F" stringByAppendingString:[note text]];
[someUITextView setString:directionalString];
答案 1 :(得分: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;
}