Что я хотел бы задать здесь, это вопрос дизайна.Кому нужно настроить внешний вид CustomUIView
У меня есть CustomUIViewController, которые обрабатывают некоторые подзоны внутри представления контроллера.
Этих две точек зрения логически различен и имеет различные роли:
- Первая подтаблица содержит UIControl объекты, пользователь может взаимодействовать с (Game Controls).
- Второе подземелье просто показывает ход игры.
Проблема в том, что мне нужно иметь несколько реализаций управления играми (скажем, два, которые могут быть графически совершенно разными), и пусть пользователь выбирает тот, который он предпочитает.
Мой вопрос: будет ли считаться хорошей практикой иметь код CustomUIViewController в сочетании с реализациями Game Controls (включая графические ресурсы для настройки внешнего вида каждого из них)? Или было бы лучше, если внешний вид представлений Game Control обрабатывается другим объектом (фабрикой, делегатом или чем-то подобным)?
Можете ли вы предложить любой шаблон, который поможет справиться с этим вариантом использования?
Заранее спасибо.
Контроллер обычно контролирует это. В качестве альтернативы вы могли бы контролировать контроллер изменения в выборе пользователя, а затем установить флаг в представлении управления играми. Этот флаг определяет, какие графики используются при его отображении (и изменение флага вызывает повторное отображение/изменение ресурсов изображения) в зависимости от того, как вы в настоящее время выделили знания об именах изображений. – Wain
@Wain: Какую из них следует считать лучшей практикой со знанием имен изображений: встроить ее в CustomUIViewController или, скорее, поместить в специализированное представление Game Control? – Gabriele
Я бы выбрал для него контроллер, зная имена изображений. Я бы не сказал, что это была сложная передовая практика. Пока структура разумна и последовательна, тогда представление может указывать свои изображения по умолчанию и предлагать пользователям (контроллеру) возможность их изменения. Если в представлении представлено несколько стилей отображения, он может управлять всем этим. Подумайте о 'UITableView' и о том, что он делает доступным ... – Wain