Ответ 1
Лучше избегать initWithFrame
, если у вас нет выбора. С помощью Auto Layout подход заключается в определении двух ограничений, определяющих ширину и высоту. Существуют разные способы сделать это, но если вы делаете это программно, в методе updateViewConstraints
вашего контроллера представления или методе updateConstraints
представления, проверьте, были ли уже созданы ограничения, а если нет, добавьте их на ваш взгляд.
например.
[myConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[_mySubView]-(200)-|"
options:0
metrics:nil
views:_myViewsDictionary]];
[myConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[_mySubView(100)]-|"
options:0
metrics:nil
views:_myViewsDictionary]];
Тем не менее, лучше сделать это с помощью Interface Builder. Как только вы привыкнете к этому - и к нему привыкнуть, вы найдете его фантастическим временным ресурсом и намного лучше, чем определение ваших ограничений в коде.