UITableViewController против UIViewController + UITableView

Вы когда-нибудь использовали UITableViewController? Вы когда-нибудь использовали UIViewController and UITableView? Каковы различия между этими двумя решениями? Что для них является хорошей практикой?
Эта заметка представляет собой быстрое сравнение UITableViewController и UIViewController + UITableView.
я позвоню UIViewController + UITableView является Free TableView

UITableViewController это особый UIViewController. Его представление представляет собой UITableView, не может изменять ограничения. Вы не можете добавить вид в UITableViewбез клетки.

Преимущества

  • Автоматически перемещать contentOffset в текущее активное текстовое поле.
  • Хорошая практика для экрана журнала чата, экрана формы.
  • Принять статическое табличное представление: очень легко и быстро создать форму с помощью Storyboard

Недостатки

  • Не удается отобразить представление состояния путем добавления в представление. Вы можете сделать это, добавив в tableHeaderView или tableFooterView, но вам придется обрабатывать много вещей.

  • Не может наследоваться от BaseController. У вас есть BaseController со многими настройками внутри, такими как stateView, loadData, setupUI и т. д., и вы не можете наследовать это с помощью UITableViewController.

  • Невозможно добавить закрепленный вид сверху или снизу, как показано ниже.

Free TableView — это UIViewController и добавить UITableView в поле зрения. Вы можете легко установить ограничения для UITableView.

Преимущества

  • Очень гибкий. Вы можете показать/скрыть tableView, установить отступы для tableView.
  • Хорошо для государственной демонстрации. В демо я показываю, что пустое состояние — это зеленый UIView в центре экрана.

Недостатки

  • Не принимать статическое представление таблицы.
  • Не двигаться автоматически contentOffset в текущее активное текстовое поле.

Исправить недостатки

Это уловка. Подробно напишу позже:

  • Добавлять UITableViewс datasource представляет собой массив UITableCell.
  • Добавьте библиотеку для обработки активированного текстового поля. Я предлагаю библиотеку Хокона Богена (скачать по адресу Гитхаб).

Объясните для демонстрации

У меня есть демо для этого. Скачать здесь.

  • knController является UIViewController. Я сделал свой собственный контроллер для управления созданием пользовательского интерфейса с помощью кода.
  • knCustomTableController бесплатно
  • Некоторые функции, такие как horizontal:toView:space, fill:toView:space мои библиотеки Auto Layout, имя knContrainsts.
  • Пустое состояние в демо — это просто зеленый UIView. Я не хочу добавлять больше кода, чтобы сделать его более сложным.

Вывод

  • Free TableView имеет недостатки, но легко решается. Это решение гораздо более гибкое и простое в управлении.
  • UITableViewController все еще имеет хорошую практику, которая не может заменить Free TableView
  • Понимание различий может помочь нам выбрать правильный вариант для нашей ситуации.

Наслаждайтесь кодированием.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *