UIScrollView z ograniczeniami automatycznego układu iOS: Niewłaściwy rozmiar dla podglądów

Próbuję wygenerować widok w kodzie. Oto hierarchia mojego obiektu widoku

UIScrollViewUIViewUIButton

ScrollView powinien mieć taki sam rozmiar jak okno. Przycisk powinien być jak największy. Używam automatycznego układu iOS, więc ciągi ograniczeń dla wszystkich moich obiektów wyglądają tak

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

Ustawiłem teżtranslatesAutoresizingMaskIntoConstraints doNO dla każdego obiektu.

Problem polega na tym, że przycisk otrzymuje tylko domyślny rozmiar przycisku. Jego obiekt widoku nadrzędnego (UIView) pobiera tylko rozmiar, którego potrzebują jego widoki.

czerwony: UIScrollView / żółty: UIView

Jak mogę zmusić te widoki, aby były tak duże jak scrollView?

Kiedy używam UIView zamiast th UIScrollView wszystko działa świetnie ...

Oto kod:

    - (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;

    }

AKTUALIZACJA: Naprawdę nie wiem, dlaczego tak się dzieje. Jeśli ustawisz widok w IB, podłącz gniazda i skonfiguruj widok w kodzie, widok przewijania zachowuje się jak normalny widok (który odbija się pionowo). Jego contentSize nie jest poprawnie obliczane. Więcejtutaj. Ale jak to zrobić poprawnie?

questionAnswers(1)

yourAnswerToTheQuestion