Существует настраиваемое представление, состоящее из класса и файла xib. я использую его как
[[NSBundle mainBundle] loadNibNamed:@"myViewNib" owner:self options:nil];
Вопрос в том, как наследовать это пользовательское представление.
Я наследую myViewClass, но тогда я не могу использовать приведенный выше код для создания экземпляра. Думаю, я ошибаюсь.
Ответ 1 · рейтинг 2 · dariaa
Один из вариантов - не создавать сам MYBaseView в файле .xib, а его подвид. Таким образом, вы сможете легко унаследовать MYBaseView.
Этот код должен работать правильно, если вы создаете объект представления программно или в интерфейсном конструкторе:
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
[self setUp];
}
return self;
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self setUp];
}
return self;
}
- (void)setUp
{
UIView *view = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil] lastObject];
[self addSubview:view];
}