Для всіх, хто зацікавлений повторити це, просто виконайте наступні дії:
- Створіть новий проект 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панелі стану. Коли миша підніметься до нижньої частини рядка стану, ви побачите міхур з автоматичним розташуванням, на якому написано "Посібник із верхнім розташуванням". Відпустіть мишку та оберіть "Вертикальний пробіл". Це покаже системі макета розмістити її прямо під рядком стану.
Я перевірив обидва способи на порожній програмі, і вони обидва працюють. Можливо, вам доведеться зробити кілька додаткових налаштувань, щоб вони працювали на ваш проект.