1

나는 UILabel에서 보여주고 싶은 html 콘텐츠가 있습니다.NSAttributedString - 아랍어 언어 쓰기 방향 추가

NSAttributedString *attrStr = [[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ 
NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} 
documentAttributes:nil error:nil]; 
return attrStr; 

이 영어 (LTR 의미)를 위해 좋은 작동하지만 내가 아랍어 지원하려는 때문에뿐만 아니라 위의 방법이 기인 문자열 LTR을 유지합니다. 이 코드를 사용 Inspite : 나는

NSMutableAttributedString *mutableAttributedString = [[NSMutableAttributedString alloc]initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:nil error:nil]; 
[mutableAttributedString addAttribute:NSWritingDirectionAttributeName value:@[@(NSWritingDirectionRightToLeft | NSWritingDirectionOverride)] range:NSMakeRange(0, string.length)]; 
return mutableAttributedString; 
여전히

같은

을 시도했습니다 self.view.semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;

. 어떤 제안이라도 환영합니다. 감사합니다.

답변

1

희망은 오른쪽 정렬에 도움이됩니다.

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; 
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping; 
paragraphStyle.alignment = NSTextAlignmentRight; 

NSDictionary *attr = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, 
        NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)}; 

NSError *error = nil; 

NSMutableAttributedString *attributedText = 
[[NSMutableAttributedString alloc]initWithData:[text dataUsingEncoding:NSUTF8StringEncoding] options:attr documentAttributes:nil error:&error]; 

[attributedText addAttribute:NSParagraphStyleAttributeName 
        value:paragraphStyle 
        range:NSMakeRange(0, attributedText.length)]; 
return attributedText;