swift - 容器 View 中嵌入的 pageViewController 的 View 缩放问题

标签 swift xcode uipageviewcontroller uicontainerview

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

Image1]

因为我想在其中一个 View Controller 中显示一些图表,我在其中有额外的 View ,然后用图表填充这些 View 。问题是由于某种原因,当第一次调用此 viewController 时,整个 View 的框架大小都关闭了。

Image2]

这会导致绘图被错误地缩放。当我旋转设备时,问题消失了,因为在 'didRotate() {...}' 中使用正确的帧大小重新绘制了图

Image3] Image4]

所以当我旋转设备两次时,我得到了我想要的图。

我一直在绞尽脑汁想如何解决这个问题,但到目前为止没有任何效果。唯一让我有点了解发生了什么的事情是,在重新加载所有内容之前,容器 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))

或者你可以尝试搞乱这个功能:

Autoresizing in size inspector

关于swift - 容器 View 中嵌入的 pageViewController 的 View 缩放问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57097852/

相关文章:

ios - 当在其中一个页面中包含的 UISwitch 上开始触摸时禁用 UIPageViewController 滚动

ios - 未调用 didTapMyLocationButtonForMapView

ios - 对钥匙串(keychain)访问 iPhone 分发证书感到困惑

iOS:CGPDFContextAddDocumentMetadata 的示例代码或示例

objective-c - 关于将 Objective C 代码添加到快速动态框架的说明

ios - 滑动 UIPageViewController 时出现的间隙 - Swift

ios - 切换到 UIPageViewControllerTransitionStyleScroll 后的空白页

swift - 发送到类的静态函数无法识别的选择器

javascript - 使用 Node.js 和 Swift 服务器的 Socket.IO 未检测到连接? [即将颁奖]

ios - 如何从 WatchKit slider 隐藏 '+' 和 '-' 按钮?