IOS установка привязки из таблицы XIB не работает должным образом

У меня есть некоторые виджеты, определенные в XIB, я хочу установить привязки-привязки программно. Когда я устанавливаю imageView, кажется, работает, но UITable исчезает, когда установлены левый, правый или нижний якоря.

Также таблица не устанавливает позицию Y под imageView...

- (void)viewDidLayoutSubviews{
    [super viewDidLayoutSubviews];

    [self setupConstrains];
}

- (void)setupConstrains {

//    //image world
    self.whatDoppelsView.translatesAutoresizingMaskIntoConstraints = false;

    [self.whatDoppelsView.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor].active = YES;
    [self.whatDoppelsView.trailingAnchor constraintEqualToAnchor:self.view.trailingAnchor].active = YES;

    //table,
    self.table.translatesAutoresizingMaskIntoConstraints = false;
//    
    [self.table.topAnchor constraintEqualToAnchor:self.whatDoppelsView.bottomAnchor constant:0];
//
//    [self.table.topAnchor constraintEqualToAnchor:self.view.topAnchor constant:1];
//
//    //[self.table.heightAnchor constraintEqualToConstant:900];
//    
    [self.table.heightAnchor constraintEqualToAnchor:self.view.heightAnchor multiplier:0.50];

//    [self.table.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor].active = YES;
//    [self.table.trailingAnchor constraintEqualToAnchor:self.view.trailingAnchor].active = YES;

//    [self.table.bottomAnchor constraintEqualToAnchor: self.view.bottomAnchor].active = YES;

}

Если я раскомментирую ведущую, конечную или нижнюю привязку таблицы, она исчезнет, ​​и таблица должна быть под моим imageView.

Как это исправить? Спасибо!

1 ответ

Решение

Активируйте свой constraints как вы сделали в своих последних строках. В противном случае вы просто даете ограничения компоненту, и они не находятся в состоянии активации, тогда ничего не происходит, т.е. компоненты ведут себя так, как будто у них нет ограничений.

Замечания:

Всякий раз, когда вы меняете constraints на любом компоненте программно, например, для некоторого эффекта, который вы хотели изменить в макете компонента, а затем убедитесь, что вы сначала правильно удалили все предыдущие ограничения, даже если вы хотели обновить один constraint затем сначала вы должны полностью удалить все предыдущие ограничения, в противном случае x-code получить конфликты.

Другие вопросы по тегам