Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как наследовать пользовательский вид с файлом .xib

Автор вопроса: leavezОтветов: 2

Существует настраиваемое представление, состоящее из класса и файла xib. я использую его как

[[NSBundle mainBundle] loadNibNamed:@"myViewNib" owner:self options:nil];

Вопрос в том, как наследовать это пользовательское представление.

Я наследую myViewClass, но тогда я не могу использовать приведенный выше код для создания экземпляра. Думаю, я ошибаюсь.

iosclassxib

Ответы

Ответ 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];
}

Ответ 2 · Avi Tsadok

Должен быть:

myViewClass *newView = [[NSBundle mainBundle] loadNibNamed:@"myViewNib" owner:self options:nil];

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы