Я пытаюсь реорганизовать свой код наилучшим образом, и мне интересно, что такое правильная архитектура для данной ситуации.Подкласс UIView или UIViewController?
Что я пытаюсь сделать
Что я делаю это довольно просто: у меня есть некоторые пользовательские CALayer
подклассы, которые представляют собой интерактивный элемент пользовательского интерфейса. Они разбиты на несколько уровней, так как некоторые части пользовательского интерфейса являются статическими, поэтому я не хотел, чтобы они ненужно перерисовывали эти статические элементы. В настоящее время слои добавляются как подслои в части инициализации класса CustomView
, который является подклассом UIView
.
Существует в настоящее время не соответствующий CustomViewController
класс, подкласс UIViewController
, потому что, когда я использую CustomView
, он содержится в UITableViewCell
или части общего UIViewController
с другими видами в ней, так что я чувствовал другое UIViewController
для каждого экземпляра CustomView
будет излишним.
Также важно, чтобы единственная операция, которую я выполняю внутри класса UIView
, я отвечаю на события касания и отправляет сенсорную информацию на подуровни, чтобы пользовательский интерфейс мог соответствующим образом обновлять внешний вид. Я не переопределяю метод drawRect
или что-то в этом роде.
Вопрос
В принципе, я пытаюсь выяснить, является ли я должен либо:
Вариант 1:
Избавиться от CustomView
класса, создать CustomViewController
класс который является подклассом UIViewController
, и просто добавьте объекты CALayer
в качестве подслоев CustomViewController
, встроенных в view
.
или
Вариант 2:
Мои мысли о UIViewController
подкласс является излишним является правильным, так что я должен оставить его так, как он у меня и есть CustomView
класс с CALayer
объектами внутри из Это.
Я был бы очень признателен за любые советы по этому вопросу.
Я сделал это точно так же, как и в прошлом. Я также сделал это с UIViewController. Пока код поддерживается и работоспособен, я думаю, это не имеет большого значения. UIViewController - это (я думаю) более «правильный» способ сделать это, но это может также помешать работе, особенно если вы помещаете его в UITableViewCell, и их может быть много. – Fogmeister
Спасибо за быстрый ответ. Приятно слышать, что я не ухожу в режиме, отличном от 'UIViewController', который он реализует в настоящее время. –