Для всіх, хто зацікавлений повторити це, просто виконайте наступні дії:
- Створіть новий проект iOS
- Відкрийте основну дошку та видаліть стандартну / початкову
UIViewController
- Витягніть нове
UITableViewController
з бібліотеки об’єктів
- Встановіть його як початковий контролер подання
- Подайте в таблицю деякі дані тесту
Якщо виконати вищезазначені кроки, під час запуску програми ви побачите, що нічого, включаючи встановлення прапорців Xcode на "Розширення країв під {Верх, Низ, Непрозорий} Прутки", не працює, щоб зупинити показ першого ряду під рядком стану, і ви не можете вирішити це програмно.
Наприклад , у наведеному вище сценарії, наступний не матиме НЕ ефект:
// These do not work
self.edgesForExtendedLayout=UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars=NO;
self.automaticallyAdjustsScrollViewInsets=NO;
Це питання може бути дуже неприємним, і я вважаю, що це помилка в кінці Apple, тим більше, що вона з'являється в їх власному попередньому з'єднанні UITableViewController
з бібліотеки об'єктів.
Я не погоджуюся з усіма, хто намагається вирішити це за допомогою будь-якої форми "Чарівних чисел", наприклад "використовувати дельту 20 пікселів". Цей тип щільно поєднаного програмування, безумовно, не те, що Apple хоче, щоб ми тут робили.
Я виявив два рішення цієї проблеми:
Збереження UITableViewController
сцени " .
Якщо ви хочете зберегти UITableViewController
в дошці розкадровку, не розміщуючи її в іншому вікні вручну, ви можете вставити UITableViewController
в нього UINavigationController
(Редактор> Вставити> Контролер навігації) і зняти галочку" Показувати панель навігації "в інспекторі . Це вирішує проблему, не потребуючи додаткових налаштувань, а також зберігає UITableViewController
сцену вашої в розгортці.
Використання функції AutoLayout та вбудовування UITableView
в інший вигляд (я вважаю, що Apple хоче, щоб ми це зробили) :
Створіть порожнє UIViewController
та перетягніть його UITableView
в нього. Потім натисніть клавішу Ctrl з UITableView
панелі стану. Коли миша підніметься до нижньої частини рядка стану, ви побачите міхур з автоматичним розташуванням, на якому написано "Посібник із верхнім розташуванням". Відпустіть мишку та оберіть "Вертикальний пробіл". Це покаже системі макета розмістити її прямо під рядком стану.
Я перевірив обидва способи на порожній програмі, і вони обидва працюють. Можливо, вам доведеться зробити кілька додаткових налаштувань, щоб вони працювали на ваш проект.