it-swarm.com.ru

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

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

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

114
Ali Sufyan

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

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

self.automaticallyAdjustsScrollViewInsets = NO
216
jrturton

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

ответ Jrturton также не самый чистый способ решить его. Вам не нужно переопределять. Будь проще!

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

self.automaticallyAdjustsScrollViewInsets = NO;

в методе viewDidLoad.

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

58
Dumoko

В Интерфейсном Разработчике

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

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

textView.textContainerInset = UIEdgeInsetsZero;  
textView.textContainer.lineFragmentPadding = 0;
37
Ravi Bihani

Перейти к Interface Builder

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

 enter image description here

24
Aamir

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

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

enter image description here

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

enter image description here

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

10
MonsieurDart

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

yourTextView.textContainerInset = UIEdgeInsetsZero;
6
lberyouk

На Свифте (Xcode 6)

 self.automaticallyAdjustsScrollViewInsets = false
6
Claudio Barrozo Prado

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

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

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

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

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

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

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

0
Terence

Решение для Swift 4:

textView.textContainerInset = UIEdgeInsets.zero
0
Kostas Tsoleridis

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

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