Пустое пространство в верхней части UITextView в iOS 10

У меня есть UITextView с некоторым текстом в нем. Все было в порядке с iOS 6, но теперь с iOS 7 он оставляет пустое место сверху, а затем помещает текст ниже середины текстового поля. enter image description here

Я не установил contentOffSet. Пожалуйста, помогите!

Ответ 1

Текстовое представление представляет собой вид прокрутки. Контроллеры просмотра автоматически добавят смещение содержимого для прокрутки, так как предполагается, что они захотят прокручиваться за панель навигации и строку состояния.

Чтобы предотвратить это, установите для контроллера вида, содержащего текстовое представление, следующее свойство:

self.automaticallyAdjustsScrollViewInsets = NO

Ответ 2

Текущий ответ, который дал IronManGill, не является хорошим решением, потому что он не основан на понимании того, почему проблема возникает в первую очередь.

Ответ jrturton также не самый чистый способ его решения. Вам не нужно переопределять. Держите это просто!

Все, что вам нужно, это установить следующее:

self.automaticallyAdjustsScrollViewInsets = NO;

в методе viewDidLoad.

Проверьте документы: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621372-automaticallyadjustsscrollviewin

Ответ 3

В построителе интерфейсов

  • Выберите контроллер представления, содержащий UITextView.
  • Перейдите к инспектору атрибутов.
  • Снимите флажок "Настроить вставки прокрутки".

Ответ 4

Это сработало для меня

textView.textContainerInset = UIEdgeInsetsZero;  
textView.textContainer.lineFragmentPadding = 0;

Ответ 5

Перейдите к Interface Builder:

  • Выберите view controller, который содержит text view
  • снимите флажок Adjusts Scroll View Insets свойство

введите описание изображения здесь

Ответ 6

Мне действительно интересно, действительно ли это реальная функция... Эта 64-точечная автоматическая вставка добавляется только при UIScrollView или UITextView в качестве большей глубины всех подзонов в представлении контроллера вида. Например, если вы добавили представление позади (здесь я говорю о z-буфере, а не о представлении), прокрутка, эта 64-точечная вставка не добавляется автоматически.

Например, это добавляет вставку:

enter image description here

В этом случае вставка не добавляется:

enter image description here

Мне это действительно кажется странным... Почему ОС должна смотреть на глубину представления, чтобы решить, нужно ли расширять представление?

Ответ 7

В быстром (Xcode 6)

 self.automaticallyAdjustsScrollViewInsets = false

Ответ 8

Вы можете удалить пустое место поверх UITextView, добавив:

yourTextView.textContainerInset = UIEdgeInsetsZero;

Ответ 9

Я решил эту проблему, установив смещение содержимого на отрицательное значение. Вот код Swift.

yourTextView.setContentOffset(CGPoint(x: 0, y: -150), animated: true)

Ответ 10

Что вы должны понимать, так это то, что это касается панели навигации:

  • Если ваш контент находится под панелью навигации, вы хотите, чтобы контроллер просмотра автоматически настраивал вставки прокрутки (по умолчанию).
  • Если ваш контент не попадает под панель навигации (вы, вероятно, использовали верхний макет для ограничения верхнего пространства), вы можете отключить автоматическую настройку вставки прокрутки, как указано в большинстве других ответов.

Ответ 11

Это непрофессиональное решение, я уверен... Но просто поместить пустой ярлык в текстовое окно решает проблему.

Ответ 12

Это просто сработало для меня (доступно на iOS 7)

[<#your UITextViewInstance#> setTextContainerInset:UIEdgeInsetsZero];

Ответ 13

Я попробовал следующий трюк, он сработал.

- (void)viewDidLoad{
   self.textView.scrollEnabled = NO;  
}       
- (void)viewDidAppear:(BOOL)animated {
   [super viewDidAppear:animated];
   self.textView.scrollEnabled = YES;
}