В моем приложении у меня есть UITextView
со многими строками, но мне нужны данные с правильным внешним видом.Обоснованное выравнивание в UITextView - iPhone
Возможно ли обоснованное выравнивание в UITextView
?
В моем приложении у меня есть UITextView
со многими строками, но мне нужны данные с правильным внешним видом.Обоснованное выравнивание в UITextView - iPhone
Возможно ли обоснованное выравнивание в UITextView
?
Нет установки для выравнивания по выравниванию текста, у вас есть только центр, слева и справа. Если вы хотите, чтобы выравнивание было правильным, где каждая строка имела одинаковое количество символов или что-то подобное, вы можете отформатировать введенный текст, чтобы возврат каретки после x количества символов или слов или что-то в этом роде.
Я пришел к решению, которое работает. Прежде всего, вам нужно будет изменить свой 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];
Но тогда стиль за простым черным текстом на whi te необходимо выполнить с помощью CSS/inline html-стилей вместо свойств какао. – autodidakto
Существует еще один вариант. CATextLayer
.
Он явно поддерживает выравнивание выравнивания. И это очень легко и быстро, чем UIWebView
. Потому что это по существу тонкий слой над CoreText
, поэтому не требует сложного процесса компоновки, такого как UIWebView
.
Или вы можете использовать еще один вариант, просто используя нижний уровень CoreText
рамки напрямую.
Во всяком случае, они не поддерживают редактирование текста. Если вам это нужно, вы должны реализовать все это самостоятельно.
Я знаю, что это старый вопрос, но теперь у нас есть новости о:
UITextView *textView = // init your text view
textView.textAlignment = NSTextAlignmentJustified;
И это все!
UPDATE: Это работает только на IOS 6 и выше
Thx для обновления, я забыл упомянуть об этом. – fencingCode
вы не знаете, почему это работает только на iOS6, а не на iOS7? NSTextAlignmentJustified на моем UILabel не работает в iOS7. – Rambatino
@MarkRamotowski, попробуйте вместо этого использовать UITextView. работает для меня в iOS6 и iOS7 – Sam
Существует решение:
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;
Это только iOS6. – Shai
Для правосторонних языков, как персидский
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;
Sure, Theres страницу, где вы можете предлагайте функциональность на сайте Apple, я не помню, где это tho =/ – Daniel
Это здесь http://bugreport.apple.com – Jasarien