Как выровнять текст по горизонтали и вертикали в UITextView?
25273 просмотра
4 ответа
Как выровнять текст по горизонтали и вертикали в UITextView? Я хочу, чтобы выровнять текст в UITextView с горизонтальным и вертикальным выравниванием. Есть ли какой-нибудь нестандартный способ? Пожалуйста, помогите мне .....
Автор: JKMania Источник Размещён: 12.11.2019 10:00Ответы (4)
7 плюса
Насколько я знаю, нет встроенного метода для вертикального выравнивания UITextView
. Однако, обновив contentOffset
текст, вы можете получить вертикально центрированный текст:
[textView setTextAlignment:NSTextAlignmentCenter];
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[textView addObserver:self forKeyPath:@"contentSize" options:(NSKeyValueObservingOptionNew) context:NULL];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[textView removeObserver:self forKeyPath:@"contentSize"];
}
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
UITextView *tv = object;
CGFloat topCorrect = ([tv bounds].size.height - [tv contentSize].height * [tv zoomScale])/2.0;
topCorrect = ( topCorrect < 0.0 ? 0.0 : topCorrect );
tv.contentOffset = (CGPoint){.x = 0, .y = -topCorrect};
}
Автор: Gad
Размещён: 10.02.2014 06:48
26 плюса
Это решение Swift, и теперь оно другое, поскольку вставки и смещения содержимого немного изменились. Это решение работает в Xcode 7 beta 6.
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
textView.addObserver(self, forKeyPath: "contentSize", options: NSKeyValueObservingOptions.New, context: nil)
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
textView.removeObserver(self, forKeyPath: "contentSize")
}
Apple изменила работу смещений и вставок содержимого. Теперь это слегка измененное решение должно устанавливать верхнюю часть вставки содержимого вместо смещения.
/// Force the text in a UITextView to always center itself.
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
let textView = object as! UITextView
var topCorrect = (textView.bounds.size.height - textView.contentSize.height * textView.zoomScale) / 2
topCorrect = topCorrect < 0.0 ? 0.0 : topCorrect;
textView.contentInset.top = topCorrect
}
Автор: Hamer
Размещён: 06.09.2015 05:34
5 плюса
Вертикально выравнивая середину с Swift:
В viewDidLoad:
textField.addObserver(self, forKeyPath: "contentSize", options: NSKeyValueObservingOptions.New, context: nil)
Тогда где-то еще в вашем контроллере представления:
override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {
var topCorrect : CGFloat = (textField.frame.height - textField.contentSize.height);
topCorrect = topCorrect < 0.0 ? 0.0 : topCorrect / 2
textField.contentOffset = CGPoint(x: 0, y: -topCorrect)
}
где textField связан с фактическим текстовым полем в вашем представлении.
Автор: maxmzd Размещён: 15.06.2015 09:170 плюса
Вы должны предоставить контекст того, что вы хотите сделать, когда вы хотите изменить горизонтальное и вертикальное выравнивание,
UITextview имеет контейнер и свойство frame, которое вы можете выровнять с другим UITextview / Imageview и т. Д. Свойство frame имеет источник и размер, который вы можете изменить для выравнивания ваших представлений.
Текст в UITextview имеет свойство, называемое textalignment, которое вы можете установить в NSTextAlignmentLeft, NSTextAlignmentJustified. Как предлагается, вы также можете настроить свойство смещения содержимого контейнера, но я считаю, что настройка фрейма более прямолинейна.
Автор: Paulo Размещён: 10.02.2014 07:44Вопросы из категории :
- ios Приложение для iPhone в ландшафтном режиме, системы 2008
- ios Как мне дать моим веб-сайтам значок для iPhone?
- ios Как программно отправить смс на айфон?
- ios Как я могу разработать для iPhone, используя машину для разработки Windows?
- ios Tips for a successful AppStore submission?
- ios Как мне определить размер UITextView для его содержимого?
- ios iPhone viewWillAppear не стреляет
- ios Как показать индикатор загрузки в верхней строке состояния
- ios Как сохранить картинку в фотобиблиотеку iPhone?
- ios Как отключить выбор UITableView?
- uitextview Как убрать клавиатуру для UITextView с ключом возврата?
- uitextview Несколько строк текста в UILabel
- uitextview Как заставить UITextView обнаруживать ссылки на сайт, почту и номер телефона
- uitextview Как отключить копирование, вырезание, выделение, выделение всего в UITextView
- uitextview UITextView отключение выделения текста
- uitextview Как стилизовать UITextview как текстовое поле Rounded Rect?
- uitextview Как изменить направление письма в iPhone UITextView или UITextField
- uitextview iphone UITextView не поддерживает детекторы данных, когда текстовое представление доступно для редактирования
- uitextview How can I change the color of a part of a TextView?