IBOutlet не работал с ограничениями жесткого кода
У меня есть новая проблема, связанная с миром Auto-Layout, я могу подвести итог проблемы в следующих шагах:
1- У меня есть раскадровка только с одной сценой, содержащей UIImageView.
2- Я пошел в файл viewcontroller.m и добавил ручные ограничения, как показано ниже:
[self.bgImageView setTranslatesAutoresizingMaskIntoConstraints:NO];
NSLayoutConstraint *horizentalSpaceConstraint = [NSLayoutConstraint constraintWithItem:self.bgImageView
attribute:NSLayoutAttributeTrailing
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeBottom
multiplier:1.0
constant:0.0];
[self.view addConstraint:horizentalSpaceConstraint];
Результат:
Ограничение не повлияло на IBoutlet для UIImageView, но если я добавлю UIImageView из жестко запрограммированного файла viewcontroller.m, это сработает, вы можете помочь мне обнаружить эту проблему.
1 ответ
Я нашел решение, которое можно описать с помощью (Каждые ограничения, используемые элементами IBOutlet, должны перед началом добавить только следующую строку без необходимости [setTranslatesAutoresizingMaskIntoConstraints:No]
-(void)viewWillAppear:(BOOL)animated{
// Step 1 remove view constraints for IBOutlet elements
[self.view removeConstraints:self.view.constraints];
}