2013-10-08 6 views
0

Что я хотел бы задать здесь, это вопрос дизайна.Кому нужно настроить внешний вид CustomUIView

У меня есть CustomUIViewController, которые обрабатывают некоторые подзоны внутри представления контроллера.

Этих две точек зрения логически различен и имеет различные роли:

  • Первая подтаблица содержит UIControl объекты, пользователь может взаимодействовать с (Game Controls).
  • Второе подземелье просто показывает ход игры.

Проблема в том, что мне нужно иметь несколько реализаций управления играми (скажем, два, которые могут быть графически совершенно разными), и пусть пользователь выбирает тот, который он предпочитает.

Мой вопрос: будет ли считаться хорошей практикой иметь код CustomUIViewController в сочетании с реализациями Game Controls (включая графические ресурсы для настройки внешнего вида каждого из них)? Или было бы лучше, если внешний вид представлений Game Control обрабатывается другим объектом (фабрикой, делегатом или чем-то подобным)?

Можете ли вы предложить любой шаблон, который поможет справиться с этим вариантом использования?

Заранее спасибо.

+0

Контроллер обычно контролирует это. В качестве альтернативы вы могли бы контролировать контроллер изменения в выборе пользователя, а затем установить флаг в представлении управления играми. Этот флаг определяет, какие графики используются при его отображении (и изменение флага вызывает повторное отображение/изменение ресурсов изображения) в зависимости от того, как вы в настоящее время выделили знания об именах изображений. – Wain

+0

@Wain: Какую из них следует считать лучшей практикой со знанием имен изображений: встроить ее в CustomUIViewController или, скорее, поместить в специализированное представление Game Control? – Gabriele

+1

Я бы выбрал для него контроллер, зная имена изображений. Я бы не сказал, что это была сложная передовая практика. Пока структура разумна и последовательна, тогда представление может указывать свои изображения по умолчанию и предлагать пользователям (контроллеру) возможность их изменения. Если в представлении представлено несколько стилей отображения, он может управлять всем этим. Подумайте о 'UITableView' и о том, что он делает доступным ... – Wain

ответ

0

Я предлагаю вам создать отдельные классы для двух видов, которые вы собираетесь добавить на CustomUIViewController. Затем вы можете добавить любые компоненты и функции, которые вы хотите в соответствующих классах. Было бы легко понять код, вы также будете чувствовать себя легко, если хотите добавить некоторые расширенные функции в конкретный подзаголовок. Не кладите все в один класс, вы можете в конечном итоге испортить вещи.

Если возможно всегда стараются следовать MVC Architecure

+0

Я полностью согласен с вами. Два представления Game Control будут представлять собой два разных класса. Их внутренняя структура будет совершенно иной, но каждый класс Game Control будет отображать тот же интерфейс для CustomUIViewController.Но кто должен знать об именах изображений? Должен ли я встроить его в специализированное представление Game Control или в CustomUIViewController, который его содержит? – Gabriele

0

Подкласс 2 UIView вы пытаетесь использовать, так что вы можете иметь 2 пользовательские представления, чем добавить в свой ViewController.

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

Смежные вопросы