Обоснованное выравнивание в UITextView – iPhone

В моем приложении у меня есть UITextView со многими строками, но мне нужны данные с правильным внешним видом.

Возможно ли иметь выравнивание по выравниванию в UITextView ?

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

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

Вот и все !

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

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

Details.h

 @interface Details : UIViewController { IBOutlet UIWebView *descripcion; } @property (nonatomic, retain) UIWebView *descripcion; 

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

Details.m

 [descripcion loadHTMLString:[NSString stringWithFormat:@"
%@
",YOUR_TEXT] baseURL:nil];

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

 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; 

Есть еще один вариант. CATextLayer .

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

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

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

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

  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; 

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

  • Добавление изображений в UITextView
  • как писать в режиме добавления для текстового файла
  • Клавиатура не отображается при нажатии текстового поля в UIWebView
  • Как resize UITextView на iOS при появлении клавиатуры?
  • Могу ли я изменить цвет автоматически обнаруженных ссылок в UITextView?
  • Interesting Posts

    Всплывающее окно по внешнему экрану входящих вызовов Android, например, приложение для Android-звонящего

    FileSystemWatcher против опроса для просмотра изменений файла

    Как включить технологию виртуализации в Samsung Chromebox

    Как очистить клавиатуру

    Есть ли способ реализовать закругленные углы к Mapfragment?

    Что такое синтаксис @ Html.DisplayFor?

    Как удалить несколько фрагментов сразу или по группам из меню «Пуск»?

    Вложенные маршруты и динамическая маршрутизация в React-router v4

    Ls с каталогом путь показывает файлы, но ls с шаблоном файла нет?

    Почему мой экран мерцает только в Windows 7?

    Как развернуть mutiple web-приложение в tomcat, которое будет работать на разных портах?

    Пакетный файл – запуск программы с правами администратора

    Что означает значение $ перед строкой?

    Является ли первичный ключ автоматически индексированным в MySQL?

    Реализация комментариев и комментариев в базе данных

    Давайте будем гением компьютера.