从右到左UILabels

时间:2011-09-29 09:47:17

标签: ios uilabel right-to-left

我需要使用UILabel显示文本(不能使用UIWebView),它有时包含希伯来语和英语。使用UILabel的默认设置,句子变得混乱,没有意义。我没有找到一种方法来使UILabel显示文本rtl。

有人知道这样做,还是实现这个的代码?

2 个答案:

答案 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;

}