У меня есть UITextView с некоторым текстом в нем. Все было в порядке с iOS 6, но теперь с iOS 7 он оставляет пустое место сверху, а затем помещает текст ниже середины текстового поля.
Я не установил contentOffSet. Пожалуйста, помогите!
У меня есть UITextView с некоторым текстом в нем. Все было в порядке с iOS 6, но теперь с iOS 7 он оставляет пустое место сверху, а затем помещает текст ниже середины текстового поля.
Я не установил contentOffSet. Пожалуйста, помогите!
Текстовое представление представляет собой вид прокрутки. Контроллеры просмотра автоматически добавят смещение содержимого для прокрутки, так как предполагается, что они захотят прокручиваться за панель навигации и строку состояния.
Чтобы предотвратить это, установите для контроллера вида, содержащего текстовое представление, следующее свойство:
self.automaticallyAdjustsScrollViewInsets = NO
Текущий ответ, который дал IronManGill, не является хорошим решением, потому что он не основан на понимании того, почему проблема возникает в первую очередь.
Ответ jrturton также не самый чистый способ его решения. Вам не нужно переопределять. Держите это просто!
Все, что вам нужно, это установить следующее:
self.automaticallyAdjustsScrollViewInsets = NO;
в методе viewDidLoad.
Проверьте документы: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621372-automaticallyadjustsscrollviewin
В построителе интерфейсов
Это сработало для меня
textView.textContainerInset = UIEdgeInsetsZero;
textView.textContainer.lineFragmentPadding = 0;
Перейдите к Interface Builder
:
view controller
, который содержит text view
Adjusts Scroll View Insets
свойствоМне действительно интересно, действительно ли это реальная функция... Эта 64-точечная автоматическая вставка добавляется только при UIScrollView
или UITextView
в качестве большей глубины всех подзонов в представлении контроллера вида. Например, если вы добавили представление позади (здесь я говорю о z-буфере, а не о представлении), прокрутка, эта 64-точечная вставка не добавляется автоматически.
Например, это добавляет вставку:
В этом случае вставка не добавляется:
Мне это действительно кажется странным... Почему ОС должна смотреть на глубину представления, чтобы решить, нужно ли расширять представление?
В быстром (Xcode 6)
self.automaticallyAdjustsScrollViewInsets = false
Вы можете удалить пустое место поверх UITextView
, добавив:
yourTextView.textContainerInset = UIEdgeInsetsZero;
Я решил эту проблему, установив смещение содержимого на отрицательное значение. Вот код Swift.
yourTextView.setContentOffset(CGPoint(x: 0, y: -150), animated: true)
Что вы должны понимать, так это то, что это касается панели навигации:
Это непрофессиональное решение, я уверен... Но просто поместить пустой ярлык в текстовое окно решает проблему.
Это просто сработало для меня (доступно на iOS 7)
[<#your UITextViewInstance#> setTextContainerInset:UIEdgeInsetsZero];
Я попробовал следующий трюк, он сработал.
- (void)viewDidLoad{
self.textView.scrollEnabled = NO;
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.textView.scrollEnabled = YES;
}