Оправданный арабский или персидский текст или любое языковое направление справа налево - iOS
Как можно оправдать арабский или персидский текст или любое языковое направление справа налево?
1 ответ
Оправданный персидский или арабский текст в приложении не может быть с:
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]]];
Я надеюсь, что полезно.