2009-08-19 5 views

ответ

3

Нет установки для выравнивания по выравниванию текста, у вас есть только центр, слева и справа. Если вы хотите, чтобы выравнивание было правильным, где каждая строка имела одинаковое количество символов или что-то подобное, вы можете отформатировать введенный текст, чтобы возврат каретки после x количества символов или слов или что-то в этом роде.

+0

Sure, Theres страницу, где вы можете предлагайте функциональность на сайте Apple, я не помню, где это tho =/ – Daniel

+1

Это здесь http://bugreport.apple.com – Jasarien

12

Я пришел к решению, которое работает. Прежде всего, вам нужно будет изменить свой UITextView и вместо этого использовать UIWebView.

Details.h

@interface Details : UIViewController { 
    IBOutlet UIWebView *descripcion; 
} 

@property (nonatomic, retain) UIWebView *descripcion; 

Затем загрузите ваш UIWebView следующим образом:

Details.m

[descripcion loadHTMLString:[NSString stringWithFormat:@"<div align='justify'>%@<div>",YOUR_TEXT] baseURL:nil]; 
+1

Но тогда стиль за простым черным текстом на whi te необходимо выполнить с помощью CSS/inline html-стилей вместо свойств какао. – autodidakto

6

Существует еще один вариант. CATextLayer.

Он явно поддерживает выравнивание выравнивания. И это очень легко и быстро, чем UIWebView. Потому что это по существу тонкий слой над CoreText, поэтому не требует сложного процесса компоновки, такого как UIWebView.

Или вы можете использовать еще один вариант, просто используя нижний уровень CoreText рамки напрямую.

Во всяком случае, они не поддерживают редактирование текста. Если вам это нужно, вы должны реализовать все это самостоятельно.

68

Я знаю, что это старый вопрос, но теперь у нас есть новости о:

UITextView *textView = // init your text view 
textView.textAlignment = NSTextAlignmentJustified; 

И это все!

UPDATE: Это работает только на IOS 6 и выше

+0

Thx для обновления, я забыл упомянуть об этом. – fencingCode

+0

вы не знаете, почему это работает только на iOS6, а не на iOS7? NSTextAlignmentJustified на моем UILabel не работает в iOS7. – Rambatino

+0

@MarkRamotowski, попробуйте вместо этого использовать UITextView. работает для меня в iOS6 и iOS7 – Sam

10

Существует решение:

NSString *text1 = @"Sample text : A his is my weblog in English, German and Korean. If you want to know more about a pizza stone once it’s cooled down."; 

NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; 
[style setAlignment: kCTJustifiedTextAlignment]; 

NSAttributedString * subText1 = [[NSAttributedString alloc] initWithString:text1 attributes:@{ 
               NSParagraphStyleAttributeName : style 
            }]; 

_myUiTextView.attributedText = subText1; 
+1

Это только iOS6. – Shai

3

Для правосторонних языков, как персидский

UITextPosition *beginning = textview.beginningOfDocument; 
    UITextPosition *start = [textview positionFromPosition:beginning offset:0]; 
    UITextPosition *end = [textview positionFromPosition:start offset:[textview.text length]]; 

    UITextRange *textRange = [textview textRangeFromPosition:start toPosition:end]; 
    [textview setBaseWritingDirection:UITextWritingDirectionRightToLeft forRange:textRange]; 

    textview.textAlignment = NSTextAlignmentJustified; 
Смежные вопросы