Если я буду следовать, я думаю, вам нужно:
Создать подкласс UIView
с ассоциированным xib
ExampleView.h
ExampleView.m
ExampleView.xib
Установить свойство, содержащее иерархию View (все, что выхотите подключиться в Интерфейсном Разработчике)
ExampleView.h
@property (nonatomic, retain) IBOutlet UIView *exampleView;
ExampleView.m
@synthesize exampleView = _exampleView;
В ExampleView.m
вам необходимо добавить:
- (void)awakeFromNib
{
[super awakeFromNib];
[[NSBundle mainBundle] loadNibNamed:@"ExampleView" owner:self options:nil];
[self addSubview:self.exampleView];
}
Вы используете пробуждение от nib, чтобы вы могли использовать этот подкласс вИнтерфейсный Разработчик.Если вы также хотите создать его экземпляр в коде, вам нужно подключить xib в методе init.В этом случае я бы, вероятно, распаковал загрузку пера следующим образом:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self loadNibIntoView];
}
return self;
}
- (void)awakeFromNib
{
[super awakeFromNib];
[self loadNibIntoView];
}
- (void)loadNibIntoView
{
[[NSBundle mainBundle] loadNibNamed:@"ExampleView" owner:self options:nil];
[self addSubview:self.exampleView];
}
В файле ExampleView.xib обязательно подключите ваш IBOutlet UIView *exampleView
к базовому виду.
Теперь влюбой xib-файл, в котором вы хотите использовать свой пользовательский вид, просто перетащите его в окно и измените класс на свой подкласс.Вот так у меня получилось, я с нетерпением жду, когда кто-нибудь предложит улучшения.