У меня есть UIView с контейнером, в этом контейнере у меня есть UIPageViewController, который будет иметь представления, которые вы можете прокручивать, подобно приложению Apple Stocks на iPhone.
Я пытаюсь использовать все Autolayout с этим, но UIPageViewController не позволяет мне добавлять ограничения Autolayout.
Последняя строка следующего кода получает «Нет видимого @interface для« UIPageViewController », объявляет селектор« addConstraints ».
NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(self.con_pageViewController);
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"[conPageViewController]"
options:NSLayoutFormatAlignAllBaseline
metrics:nil
views:viewsDictionary];
[self.pageViewControllerPortrait addConstraints:constraints];
Однако, если я ничего не устанавливаю, UIPageViewController берет на себя всю страницу, как показано на следующем изображении. Все представление имеет цвет морской волны, контейнер — розовый фон, UIPageViewController имеет оранжевый фон (устанавливается в коде), а представление, которое я хочу отобразить в UIPageViewController, — желтовато-коричневое (я думаю).
Как видите, UIPageViewController принимает все представление, а представление, которое он должен отображать, отображается следующим образом.
Если я установлю фрейм UIPageViewController на размер его контейнера, это будет выглядеть следующим образом. Я чувствую, что если я не могу добавить ограничения в UIPageViewController, то этот способ будет лучшим в долгосрочной перспективе.
self.pageViewControllerPortrait.view.frame = self.con_pageViewController.frame;
Если я жестко запрограммирую кадр UIPageViewController, я смогу получить нужный размер, однако я не понимаю, что контейнер имеет размер 220 пикселей, но мне нужно установить для UIPageViewController высоту 284 пикселей, чтобы он заполнил контейнер.
self.pageViewControllerPortrait.view.frame = CGRectMake(0, 0, 320, 284);
Если бы кто-нибудь мог объяснить, что здесь происходит, это было бы очень признательно.
Как это выглядит в Interface Builder, если это поможет.