MVC: пользовательский UITableViewCell - представление или контроллер, или оба? - PullRequest
0 голосов
/ 01 ноября 2018

Раньше я считал CustomUITableViewCell.xib представлением, а соответствующий класс CustomUITableViewCell.swift - контроллером ячейки табличного представления.

Это правильно? Видео на YouTube, на которое я наткнулся, рассматривает класс как представление: https://youtu.be/n06RE9A_8Ks?t=177

Edit: Чтобы прояснить вопрос: что из следующего является представлением и контроллером? Оба считаются видом?

  • CustomUITableViewCell.xib
  • CustomUITableViewCell.swift

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

По моему личному мнению это мнение. Он должен обрабатывать только компоненты пользовательского интерфейса в классе. Думайте об обоих файлах как о полном представлении. Одно не может быть без другого. Таким образом я считаю их одним.

0 голосов
/ 01 ноября 2018

Я бы абсолютно считал это «представлением» (с точки зрения MVC). Это из группы логики, которая (наряду с .xib) обрабатывает 1 конкретный вид информации, а не управляет некоторым аспектом общей логики приложения.

Я также считаю UIViewController принадлежащим к части "view" MVC по той же причине. Конечно, если вы поместите в контроллеры представлений гораздо больше бизнес-логики, чем необходимо для поддержки одного представления, то ваш контроллер представлений представляет собой некоторую смесь MVC. Например, если ваш контроллер представления выбирает, какая сцена приложения будет следующей, тогда ваш контроллер представления участвует в логике контроллера, и он на самом деле не следует MVC. Тем не менее, ваш контроллер представления вынужден выполнять большую часть работы, связанной с одним представлением, поскольку существует только одно представление, за которое он отвечает, и что работа с представлениями выполняется практически в UIViewController, а не в UIView.

Так что, когда вы спрашиваете о позиции класса представления ячейки в MVC, если он выполняет работу с одним представлением, тогда это «представление». Если вы смешиваете работу контролера или работу модели, то вы запутали разделение обязанностей, которое поддерживает MVC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...