我需要使用UILabel顯示文本(不能使用UIWebView),它有時包含希伯來語和英語。使用UILabel的默認設置,這個句子變得混亂起來,沒有任何意義。我沒有找到使UILabel顯示文本rtl的方法。從右到左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;
}
這應該是被接受的答案 –
它的工作,但 「\ u200F」 正顯示出,我們如何才能消除這種不影響字符串。 – Sandy