我目前正在开发一个小型Ipad应用程序,但是两个UIViewController
的帧大小存在一些问题。这两个通过UIPageViewController
进行调用,以允许从一个视图滚动到另一个视图。依次将Page View Controller嵌入到容器视图中,如下所示:
由于我想在其中一个视图控制器中显示一些图形,因此我在其中有其他视图,然后在其中填充图表。问题是由于某种原因,当第一次调用此viewController时,整个视图的帧大小都已关闭。
这将导致错误缩放比例。当我旋转设备时,问题消失了,因为在'didRotate(){...}'
中以正确的帧大小重新绘制了图
因此,当我旋转设备两次时,我会得到想要的图。
我一直在绞尽脑汁解决该问题,但到目前为止没有任何效果。唯一让我有所了解的事情是,在重新加载所有内容之前,容器视图的框架大小和pageView的视图不匹配。
我是堆栈溢出的新手,我不知道这样做是否足够继续。如果您需要其他任何信息,请告诉我,我们很乐意提供更多背景信息。
非常感谢您的帮助!
答案 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))
或者,您也可以尝试使用此功能: