2011-09-29 39 views
6

Tôi cần hiển thị văn bản bằng cách sử dụng UILabel (không thể sử dụng UIWebView) và đôi khi có cả tiếng Do Thái và tiếng Anh. sử dụng các thiết lập mặc định của UILabel, câu được trộn lẫn và không có ý nghĩa. Tôi đã thất bại trong việc tìm cách tạo ra rtl văn bản hiển thị UILabel.Phải sang trái UILabels

Có ai biết dù sao để làm điều đó hoặc mã thực hiện việc này?

Trả lời

6

Hãy xem SO này, nó chứa một số thông tin về chủ đề này có thể giúp bạn. Dường như nó hoạt động đối với một số bằng cách thêm mã \ u200F vào các chuỗi được hiển thị.

NSString *RTFstr = "1. בבוקר"; //This could be any right-to-left string 
NSString *directionalString = [@"\u200F" stringByAppendingString:[note text]]; 
[someUITextView setString:directionalString]; 
+1

Nó làm việc nhưng "\ u200F" đang hiển thị, làm thế nào chúng ta có thể loại bỏ điều này mà không ảnh hưởng chuỗi. – Sandy

2

này sẽ làm việc

-(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

phải là câu trả lời được chấp nhận –

Các vấn đề liên quan