2017-02-01 42 views

ответ

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]]]; 

Я надеюсь, что полезно.