UIScrollView с iOS Auto Layout Ограничения: неправильный размер для подпредставлений

Я пытаюсь создать представление в коде. Вот иерархия моего объекта просмотра

UIScrollViewUIViewUIButton

ScrollView должен быть того же размера, что и окно. Кнопка должна быть максимально большой. Я использую автоматический макет iOS, поэтому строки ограничений для всех моих объектов выглядят так

H:|[object]|
V:|[object]|

Я также установилtranslatesAutoresizingMaskIntoConstraints вNO для каждого объекта.

Проблема в том, что кнопка получает только размер кнопки по умолчанию. Его родительский объект представления (UIView) только получает размер, в котором нуждаются его подпредставления.

красный: UIScrollView / желтый: UIView

Как я могу заставить эти представления быть такими же большими, как scrollView?

Когда я использую UIView вместо UIScrollView, все прекрасно работает ...

Вот некоторый код:

    - (void) viewDidLoad {

        [super viewDidLoad];

        // SCROLL VIEW
        UIScrollView* scrollView = [UIScrollView new];
        scrollView.backgroundColor=[UIColor redColor];
        scrollView.translatesAutoresizingMaskIntoConstraints = NO;

        //CONTAINER VIEW
        UIView *containerView = [UIView new];
        containerView.translatesAutoresizingMaskIntoConstraints = NO;
        containerView.backgroundColor = [UIColor yellowColor];
        [scrollView addSubview:containerView];

        // CONSTRAINTS SCROLL VIEW - CONTAINER VIEW
        [scrollView addConstraints:
         [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[containerView]|"
                                                 options:0 metrics:nil
                                                   views:@{@"containerView":containerView}]];
        [scrollView addConstraints:
         [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[containerView]|"
                                                 options:0 metrics:nil
                                                   views:@{@"containerView":containerView}]];

        // BUTTON
        UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        button.translatesAutoresizingMaskIntoConstraints = NO;
        [button setTitle:@"I'm way to small" forState:UIControlStateNormal];
        [containerView addSubview:button];

        // CONSTRAINTS CONTAINER VIEW - BUTTON
        [containerView addConstraints:
         [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[button]|"
                                                 options:0 metrics:nil
                                                   views:@{@"button":button}]];
        [containerView addConstraints:
         [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[button]|"
                                                 options:0 metrics:nil
                                                   views:@{@"button":button}]];
        self.view = scrollView;

    }

ОБНОВИТЬ: Я действительно не знаю, почему это происходит. Если вы настраиваете представление в IB, подключаете розетки и создаете представление в коде, представление прокрутки ведет себя как нормальное представление (которое подпрыгивает вертикально). Его contentSize не рассчитан правильно. БольшеВот, Но как это сделать правильно?

Ответы на вопрос(1)

Ваш ответ на вопрос