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
получить конфликты.