Как стандартизировать внешний вид моего приложения для iphone - PullRequest
3 голосов
/ 10 октября 2011

Я пытаюсь понять, как создать стандартный внешний вид в моем приложении для iphone. Поэтому, если бы я когда-либо хотел изменить фон для UIView, я обычно делал бы что-то подобное в all моих контроллерах вида:

self.view.backgroundColor = [UIColor groupTableViewBackgroundColor]

Это становится довольно избыточным и подверженным ошибкам, когда у вас есть около 50 UIViews для управления. И, конечно, клиенты меняют желаемое фоновое изображение каждые 3 дня или около того. Поэтому мой следующий вариант - создать вспомогательные файлы, например:

@implementation GuiDefaultsUIView
+ (void) setDefaultProperties:(UIView *) view {
    view.backgroundColor = [UIColor groupTableViewBackgroundColor];

А потом вручную позвонить [GuiDefaultsUIView setDefaultProperties:self.view]; с каждого контроллера просмотра. Это работает, и это то, как я делаю это сейчас, но это означает, что для каждого объекта пользовательского интерфейса (например, UIButton, UITableView) мне нужно вызывать аналогичную функцию для каждого экземпляра каждого класса.

То, что я хотел бы сделать, это стандартизировать это так, чтобы я получил внешний вид по умолчанию, который я могу перезаписывать при необходимости. Я рассмотрел подклассы UIView / UIButton / UITableView, но это не похоже на правильный способ сделать это. Добавление категорий было бы неплохо, но я не думаю, что переопределение методов по умолчанию (например, init) было бы правильным путем.

Итак. как бы вы стандартизировали свой внешний вид?

Ответы [ 4 ]

0 голосов
/ 10 октября 2011

Создайте класс Utility, в котором будут храниться фоновые цвета и изображения. Затем используйте эти методы, чтобы получить изображения / цвета. Когда вы должны измениться, не переходите и не вызывайте разные методы для каждого файла, вместо этого меняйте цвет, возвращаемый методом в классе Utility.

0 голосов
/ 10 октября 2011

Это относительно простой;) Например, вы просто создаете собственный подкласс UIViewController с именем MyVievController и наследуете ViewController от этого класса. Затем в init, viewWillAppear и т. Д. MyViewController вы можете выполнить настройку, просто убедитесь, что в ваших подклассах вызывается super. Вы можете сделать то же самое для UITableViewControllers и даже для UIViews, чтобы настроить чертеж или установить стандартные свойства.

Мы делаем это в наших приложениях все время, и это прекрасно работает. В некоторых случаях категории тоже хороши, например, вы можете переопределить метод drawRect в UINavigationBar.

0 голосов
/ 10 октября 2011

Почему бы вам не создать суперкласс для всех ваших просмотров?установите все нужные вам свойства, а затем создайте все новые создаваемые представления, наследуя от этого суперкласса.Допустим, вы создаете UIView с именем «PreDesignedUIview», в котором ваш дизайн внутри, например, цвет фона и т. Д.

, тогда всякий раз, когда вы создаете новое представление, вы должны установить:

@interface NewView : PreDesignedUIview

, это будет автоматическиустановите свой дизайн из PreDesignedUIview на новый вид.

Что с этим не так?

0 голосов
/ 10 октября 2011

Что вы могли бы сделать (я сделал и видел это в некоторых проектах), это создать класс, в котором вы храните все свои константы. Затем, когда они вам понадобятся, просто импортируйте их и используйте по мере необходимости.

...