Как переключать скины (или темы оформления) в приложении для iOS?

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

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

Как лучше всего реализовать это?

Условия следующие:

  • Я бы хотел использовать Interface Builder
  • Мне нужно поддерживать iOS 3.1.3 и более поздних версий
  • Я хочу сделать наборы скинов, загружаемые из Интернета (я не могу объединить все скины в приложение, поскольку для одного набора скинов требуется много изображений, и размер файла приложения может стать огромным, если я это сделаю ... Я также не хочу жестко закодировать любую информацию о конкретных скинах.)
  • Если настраиваемая обложка не содержит одного или нескольких элементов (таких как изображение или звуковой файл), я хочу, чтобы она использовала отсутствующий элемент из набора обложек по умолчанию.
  • Я не хочу создавать файлы перьев для каждого скина. Файл пера для одного экрана должен быть единственным в основном комплекте для упрощения обслуживания.

Я подумываю создать суперкласс всех UIViewController в моем приложении и переопределить часть, в которой он загружает файл Nib, и вместо загрузки из основного пакета загружать ресурсы из скина, сохраненного в каталоге документов. ...но я не знаю, как это сделать ... По умолчанию методы загрузки пера всегда загружают ресурсы из основного пакета, и информация об именах файлов ресурсов теряется после прочтения ...: (

Спасибо за заранее за вашу помощь.

7
задан Taka 29 October 2011 в 16:03
поделиться