Есть ли ячейки UITableView
шоу на пустом месте при прокрутке вниз?
Если это так, то проблема может заключаться во вставке, которая добавляется к UITableView
контроллеру навигации, который вы видите. Вставка добавляется в табличное представление для размещения содержимого под панелью навигации, когда прокрутка не происходит. При прокрутке таблицы содержимое прокручивается и отображается под прозрачной панелью навигации. Такое поведение, конечно, желательно только в том случае, если табличное представление начинается непосредственно под панелью навигации, что здесь не так.
Еще одна вещь, на которую следует обратить внимание, это то, что iOS корректирует содержимое вставки только для первого представления в иерархии представлений, если оно есть UIScrollView
или его потомок (например, UITableView
и UICollectionView
). Если ваша иерархия представлений включает в себя несколько представлений прокрутки, automaticallyAdjustsScrollViewInsets
внесите коррективы только в первое.
Вот как можно изменить это поведение:
а) Интерфейсный Разработчик
- Выберите вид контроллера
- Инспектор открытых атрибутов
В инспекторе атрибутов IB (когда выбран контроллер представления) есть свойство «Настроить вставки вида прокрутки», которое включено по умолчанию. Снимите этот флажок:
(Изображение предоставлено Dheeraj D )
Я не уверен, какая версия Xcode представила эту опцию (не заметила ее в примечаниях к выпуску), но она по крайней мере доступна в версии 5.1.1.
Изменить: чтобы избежать путаницы, это был третий вариант, упомянутый в комментариях
б) программно
Добавьте это к ie viewDidLoad
(кредиты на ответ Славко Петковски и комментарий Криса Р )
// Objective-C
self.automaticallyAdjustsScrollViewInsets = NO;
// Swift
self.automaticallyAdjustsScrollViewInsets = false
в) Это может быть актуально для старых школьников
Вы можете исправить это, добавив
tableView.contentInset = UIEdgeInsetsZero
//Swift 3 Change
tableView.contentInset = UIEdgeInsets.zero
Или если вы используете IB и если панель навигации не прозрачна (не видно по скриншоту)
- Выберите вид контроллера
- Инспектор открытых атрибутов
- В параметрах View Controller «Расширить края» снимите флажок «Under Top Bars»