我目前正在开发一个小型 Ipad 应用程序,我对两个 UIViewController
的帧大小有一些问题。这两个通过 UIPageViewController
调用,以允许从一个 View 滚动到另一个 View 。页面 View Controller 依次嵌入到容器 View 中,如下所示:
因为我想在其中一个 View Controller 中显示一些图表,我在其中有额外的 View ,然后用图表填充这些 View 。问题是由于某种原因,当第一次调用此 viewController 时,整个 View 的框架大小都关闭了。
这会导致绘图被错误地缩放。当我旋转设备时,问题消失了,因为在 'didRotate() {...}' 中使用正确的帧大小重新绘制了图
所以当我旋转设备两次时,我得到了我想要的图。
我一直在绞尽脑汁想如何解决这个问题,但到目前为止没有任何效果。唯一让我有点了解发生了什么的事情是,在重新加载所有内容之前,容器 View 的框架大小和 pageView 的 View 不匹配。
我是堆栈溢出的新手,我不知道这是否足以继续下去。如果您需要任何其他信息,请告诉我,我很乐意提供更多背景信息。
非常感谢任何帮助!
最佳答案
欢迎!
尝试在您的代码中使用它:
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))
或者你可以尝试搞乱这个功能:
关于swift - 容器 View 中嵌入的 pageViewController 的 View 缩放问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57097852/