Не совсем уверен, что вопрос здесь?
Когда дизайн приложения вроде как выложен, я создаю класс ISInterfaceElements, который содержит вещи, которые мне понадобятся вокруг приложения.(UIlabels, UIColors, UIButtons и т. Д.) Создание экземпляров UIElements просто занимает место, усложняет дело, и если вам нужно изменить кнопку или цвет, который используется в 14 местах, очень плохо писать весь код установки в разныхмест.В любом случае, я обычно делаю это так:
// ISInterfaceElement.h
#import <Foundation/Foundation.h>
typedef enum {
DarkBackground,
LightBackground,
} ISColorType;
typedef enum {
Headline,
Detail,
} ISLabelType;
@interface ISInterfaceElement : NSObject {
}
+ (UIColor*) getColor:(ISColorType) colorType;
+ (UILabel*) getLabel:(ISLabelType) labelType;
@end
С красивыми перечислениями, чтобы их было легко запомнить.
// ISInterfaceElement.m
#import "ISInterfaceElement.h"
@implementation ISInterfaceElement
+ (UIColor*) getColor:(ISColorType) colorType {
int value;
switch (colorType) {
case DarkBackground:
value = 0x2d3c3f;
break;
case LightBackground:
value = 0x627376;
break;
default:
value = 0x000000;
break;
}
int r, g, b;
b = value & 0x0000FF;
g = ((value & 0x00FF00) >> 8);
r = ((value & 0xFF0000) >> 16);
return [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:1.0f];
}
+ (UILabel*) getLabel:(ISLabelType) labelType {
UILabel *label = [[[UILabel alloc] init] autorelease];
[label setBackgroundColor:[UIColor clearColor]];
switch (labelType) {
case Headline:
[label setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:14]];
[label setTextColor:[UIColor whiteColor]];
break;
case Detail:
[label setFont:[UIFont fontWithName:@"HelveticaNeue" size:14]];
[label setTextColor:[UIColor whiteColor]];
break;
default:
break;
}
return label;
}
Поскольку все это методы класса, мне не нужно создавать экземплярыкласс ISInterfaceElement, чтобы использовать их.
Я просто иду:
UILabel aHeadlineLabel = [ISInterfaceElement getLabel:Headline];
Вы можете создать что-то подобное для своих кнопок, все, что вам нужно сделать, это создать новую UIButton внутри вашего метода,установите название и действие и, наконец, верните myButton, как я делаю с ярлыками.
Надеюсь, это поможет