iPhone управляет многоразовыми UIImages и UIViews - PullRequest
0 голосов
/ 02 августа 2011

Каков наилучший способ сохранить константы пользовательского интерфейса в отдельном классе доступными для всех контроллеров?

UIView, UIImage и UIColour все эти изображения и цвета создают такой беспорядок распределений и выпусков в моих контроллерах, и большинство из них даже одинаковы. Вместо того, чтобы распределять / связывать одни и те же изображения и представления, CA-слои снова и снова в разных классах, я хочу создать их один раз, кэшировать (или что-то в этом роде) и легко получать доступ при необходимости.

Я хочу сохранить память и мой код в чистоте.

Ответы [ 2 ]

2 голосов
/ 02 августа 2011

да, это возможно

создайте класс, подобный gconstants, затем сохраните всю свою строку здесь в файлах h / m

 extern NSString *const APP_TITLE;

 @interface UIColor (APP)
+(UIColor *) APP_NAV_COLOR;
 @end

в .m файле

 NSString *const APP_TITLE = @"APP Name";

@implementation UIColor (APP)

+(UIColor *) APP_NAV_COLOR { return [UIColor colorWithRed:00/256.0 green:111/256.0    
 blue:59/256.0 alpha:1.0]; }

@ конец

и в любом контроллере объявить заголовочный файл

 self.title = APP_TITLE;
2 голосов
/ 02 августа 2011

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

В качестве примера представьте заголовочный файл с именем Config.h

Для общего UIColor вы можете добавить следующее ...

#define SOME_CONSTANT_COLOR    [UIColor colorWithRed:0.5f green:0.5f blue:0.5f alpha:0.5f]

И затем вы можете получить к нему доступтак же, как вы использовали бы любой другой макрос ...

#import "Config.h" // at the top of you implmentation file, or prefix header

someView.backgroundColor = SOME_CONSTANT_COLOR;

То же самое относится и к изображениям ..

#define SOME_IMAGE    [UIImage imageNamed:@"someImage.png"]; // In config.h

myImageView.image = SOME_IMAGE; // In implementation file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...