Как выровнять текст по горизонтали & по вертикали в UITextView? Я хочу выровнять текст в UITextView с горизонтальным выравниванием & вертикальное выравнивание. Есть ли какой-либо пользовательский способ? Пожалуйста, помогите мне .....Как выровнять текст по горизонтали и вертикали в UITextView?
ответ
Насколько я знаю, нет встроенного метода вертикального выравнивания 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};
}
Вы должны обеспечить контекст на то, что вы имеете в виду делать, если вы хотите изменить горизонтальное и вертикальное выравнивание,
UITextView имеет контейнер и свойство кадра, которые вы можете выровнять с другим UITextview/Imageview и т. д. Свойство frame имеет начало и размер, который вы можете изменить, чтобы выровнять ваши представления.
Текст в UITextview имеет свойство, называемое textalignment, которое вы можете установить в NSTextAlignmentLeft, NSTextAlignmentJustified. Как и было предложено, вы также можете настроить свойство смещения содержимого контейнера, но я считаю, что настройка рамки более прямолинейна.
self.qtyField.textAlignment = NSTextAlignmentCenter;
Вертикальное выравнивание средней с 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 подключается до фактического текстовое поле в вашем представлении.
, который работает правильно, но каким-то образом он не работает с развязкой segue ... любая идея почему? – SKYnine
Это быстрое решение и отличается от этого, поскольку вставки и смещения содержимого немного изменились. Это решение работает в Xcode 7 беты 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
}
Это отлично работает для меня с IOS 9/Swift 2 спасибо! – Kitson
Awesome .. работал для меня. впустую почти 2 часа. –
Спасибо, Работал для меня сэкономил время –
- 1. Как выровнять по горизонтали и по вертикали?
- 2. Выровнять текст внутри div по вертикали и по горизонтали
- 3. Выровнять текст по вертикали и горизонтали в панели стека?
- 4. выровнять текст по горизонтали и вертикали в алфавитном порядке
- 5. Как выровнять ориентированный текст по вертикали или по горизонтали?
- 6. UITextView выравнивающий текст по вертикали
- 7. текст по вертикали и по горизонтали
- 8. Как выровнять по вертикали и по горизонтали в CSS?
- 9. Как выровнять текст по вертикали
- 10. Как выровнять текст по вертикали?
- 11. Как выровнять DIV по вертикали и по горизонтали
- 12. CSS: как выровнять текстовое содержимое по горизонтали и по вертикали?
- 13. По вертикали и по горизонтали выровнять изображение в div
- 14. Выровнять по горизонтали и по вертикали по кругу
- 15. Как выровнять img по горизонтали и вертикали в окне фигуры?
- 16. Как выравнивать текст в UITextView по вертикали?
- 17. выровнять текст «боксы» по вертикали
- 18. Как установить текст в середине (по горизонтали и по вертикали)?
- 19. Как выровнять по горизонтали и вертикали с фиксированным позиционированным div?
- 20. Выровнять несколько изображений и текст по горизонтали
- 21. Как центрировать текст внутри DIV по вертикали и по горизонтали
- 22. Выравнивать текст по вертикали и по горизонтали в кнопке CSS
- 23. Center значок и текст по вертикали и по горизонтали
- 24. Текст по вертикали и по горизонтали по чувствительному изображению
- 25. CSS По горизонтали выровнять текст по картинке
- 26. выровнять текст в текстовом виджете по вертикали
- 27. Выровнять по горизонтали Текст в центр
- 28. Выровнять поле ввода в центре по вертикали/горизонтали в наложении
- 29. Установите текст в UILablel как по вертикали, так и по горизонтали, не меняя рамки
- 30. CSS - Невозможно центрировать текст по вертикали и по горизонтали
Куда уходит этот код? (ViewController.m?) – Cindeselia
@Cindeselia Способ написания кода, вам нужно будет добавить его там, где находится текстовое представление. – Gad
Обратите внимание, что изменение содержимого CreateOffset работает только в том случае, если флажок «Выбираемый» текстового вида отмечен – Maiaux