UITableView использует все доступное пространство в Интерфейсном Разработчике
-
06-07-2019 - |
Вопрос
У меня проблемы с созданием UIView (в Интерфейсном Разработчике), который содержит UITableView с некоторым другим объектом, таким как UIButton или UILabel. UITableView всегда занимает максимальный объем пространства в UIView, независимо от размера самого объекта UITableView. Владелец файла - это стандартный UITableViewController.
Решение
Вот как это сделать легко:
1) Создайте контроллер табличного представления с xib.
2) Измените унаследованный тип в файле .h с UITableViewController на UIViewController.
3) Добавьте протоколы UITableViewDataSource, UITableViewDelegate в файл .h.
4) Откройте XIB, добавьте в представление.
5) перетащите табличное представление в xib под представлением, измените размер по желанию.
6) Подключите " вид " Свойство Владельца Файла для Представления вместо UITableView. Свойства источника данных и делегата табличного представления по-прежнему должны быть связаны с владельцем файла.
7) (необязательно), если вы хотите иметь возможность перезагрузить или иным образом получить доступ к таблице вне методов делегата контроллера табличного представления, которые передают табличное представление, создайте UITableView * IBOutlet с именем " myTable " или тому подобное, и подключите таблицу в IB к этому.
<Ч>Альтернативный подход - создать новый UIViewController с xib, добавить таблицу в xib, подключить источник данных / делегат к владельцу файла и создать новый класс UITableViewController, который вы используете для копирования методов в контроллер представления, затем удалите.
Другие советы
К сожалению, создание UITableView в Интерфейсном Разработчике (IB) было очень проблематичным для меня. Я столкнулся с теми же проблемами, что и вы, как начинающий разработчик, и, после большого разочарования, просто бросил IB для UITableViews.
Лучшим решением для меня было просто программно реализовать UITableViewController (и UINavigationController, который вы используете в качестве заголовка). Как только вы выясните всю парадигму Model-View-Controller, она станет довольно простой.
В документации Apple с этими именами можно найти несколько полезных ресурсов для их программного решения:
" Руководство по программированию табличного представления для iPhone OS "
" Просмотреть руководство по программированию контроллера для iPhone OS "