嵌入在容器视图中的pageViewController的视图缩放比例问题

时间:2019-07-18 15:20:02

标签: swift xcode uipageviewcontroller uicontainerview

我目前正在开发一个小型Ipad应用程序,但是两个UIViewController的帧大小存在一些问题。这两个通过UIPageViewController进行调用,以允许从一个视图滚动到另一个视图。依次将Page View Controller嵌入到容器视图中,如下所示:

Image1]

由于我想在其中一个视图控制器中显示一些图形,因此我在其中有其他视图,然后在其中填充图表。问题是由于某种原因,当第一次调用此viewController时,整个视图的帧大小都已关闭。

Image2]

这将导致错误缩放比例。当我旋转设备时,问题消失了,因为在'didRotate(){...}'

中以正确的帧大小重新绘制了图

Image3] Image4]

因此,当我旋转设备两次时,我会得到想要的图。

我一直在绞尽脑汁解决该问题,但到目前为止没有任何效果。唯一让我有所了解的事情是,在重新加载所有内容之前,容器视图的框架大小和pageView的视图不匹配。

我是堆栈溢出的新手,我不知道这样做是否足够继续。如果您需要其他任何信息,请告诉我,我们很乐意提供更多背景信息。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

欢迎!

尝试在您的代码中使用它:

    pageViewer.view.translatesAutoresizingMaskIntoConstraints = false

    contentView.addSubview(pageViewer.view) // the UIView in the UIPageViewController

    let views: [String: Any] = ["ChartView": pageViewer.view as Any]

    contentView.addConstraints(NSLayoutConstraint.constraints(
        withVisualFormat: "H:|-0-[ChartView]-0-|",
        options: NSLayoutConstraint.FormatOptions(rawValue: 0),
        metrics: nil,
        views: views))
    contentView.addConstraints(NSLayoutConstraint.constraints(
        withVisualFormat: "V:|-0-[ChartView]-0-|",
        options: NSLayoutConstraint.FormatOptions(rawValue: 0),
        metrics: nil,
        views: views))

或者,您也可以尝试使用此功能:

Autoresizing in size inspector