UITableView использует все доступное пространство в Интерфейсном Разработчике

StackOverflow https://stackoverflow.com/questions/1615895

  •  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 "

scroll top