Подтвердить что ты не робот

Почему UIScrollView оставляет пространство сверху с ios 6 и ios 7

enter image description here

enter image description here

Я отключил Autolayout и viewcontroller встроен в контроллер навигации. Я использую Xcode 5, Storyboard.

Я не понимаю, почему это оставляет пространство сверху. На самом деле в раскадровке я поставил свой ярлык точно под панель навигации. Но когда я запускаю его на симуляторе, он оставляет пространство сверху.

Один из хакерских способов решить эту проблему.

-(void)viewWillLayoutSubviews
{
   self.scrollViewMain.frame = CGRectMake(0, -70, 320, 800);

   self.scrollViewMain.contentSize = CGSizeMake(320, 800);
}

Но мне не хватает чего-то очень простого подхода.

4b9b3361

Ответ 1

В Xcode 5 в раскадровке выберите свой контроллеp > в Инспекторе атрибутов отключите Настроить прокрутки вставки вставки Также проверьте, установлен ли какой-либо контентInset

Изменить: я добавил pic

enter image description here

Ответ 2

Исправление состоит в том, чтобы реализовать следующую строку кода после в viewDidLoad;

self.automaticallyAdjustsScrollViewInsets = NO;

Ответ 3

Обновление для iOS 11

if #available(iOS 11.0, *) {
    scrollView.contentInsetAdjustmentBehavior = .never
} else {
    automaticallyAdjustsScrollViewInsets = false
}

Ответ 4

Перейдите на главную раскадровку. Выберите контроллер просмотра, см. Свойство "Настроить Просмотр прокрутки" Насекомые "в инспекторе атрибутов. Если вы не хотите, чтобы spacing.then снимите флажок" Under Top Bars ". если вы не хотите дно spacing.then снимите флажок" Under Bottom Bars". такая проблема возникает когда мы используем контроллеры, связанные с прокруткой.

Это функция навигации и панели вкладок для настройки содержимого в прокрутке, например, в виде элементов управления.

Ответ 5

Для меня в xcode 7 и Swift 2.x я заполнял UIScrollView циклом for и должен был установить значение contentInset равным нулю.

for image in images {
  self.scrollView.contentInset = UIEdgeInsetsZero
}