合理的阿拉伯语或波斯语文本或任何语言方向从右到左 - iOS

时间:2017-02-01 18:22:12

标签: ios objective-c arabic persian right-justified

如何从左到右对齐阿拉伯语或波斯语文本或任何语言方向?

1 个答案:

答案 0 :(得分:3)

应用中的合理波斯语或阿拉伯语文字无法使用:

NSTextAlignmentJustifie

我无法找到任何明确的解决方案;所以我创建这个方法可能是其他开发人员需要的:

- (NSMutableAttributedString *)MakeJustified_Text:(NSString *)text Font:(UIFont *)font{

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setBaseWritingDirection:NSWritingDirectionRightToLeft];
[paragraphStyle setAlignment:NSTextAlignmentJustified];
[paragraphStyle setLineSpacing:7];

NSMutableAttributedString* attrStr = [[NSMutableAttributedString alloc] initWithString: text];
[attrStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, attrStr.length)];

NSRange range = (NSRange){0,[attrStr length]};
[attrStr enumerateAttribute:NSFontAttributeName inRange:range options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired usingBlock:^(id value, NSRange range, BOOL *stop) {
    UIFont *replacementFont = font;
    [attrStr addAttribute:NSFontAttributeName value:replacementFont range:range];
}];
return attrStr;}

现在您可以在UITextView或UILabel中使用此方法,使用任何字体都非常简单:

    UITextView *textview = [[UITextView alloc]init];
[textview setAttributedText:[self MakeJustified_Text:mytext Font:[UIFont fontWithName:@"Font_Name" size:15]]];

我希望有帮助。