swift - 嵌入在容器视图中的 pageViewController 的视图缩放问题
问题描述
我目前正在开发一个小型 Ipad 应用程序,但我遇到了两个帧大小的问题UIViewController
。这两个通过 a 调用UIPageViewController
,以允许从一个视图滚动到另一个视图。Page View Controller 依次嵌入到容器视图中,如下所示:
因为我想在其中一个视图控制器中显示一些图表,所以我在其中有其他视图,然后用图表填充。问题是,由于某种原因,当第一次调用这个 viewController 时,整个视图的帧大小是关闭的。
这会导致图被错误地缩放。当我旋转设备时,问题消失了,因为在 'didRotate() {...}' 中使用正确的帧大小重新绘制了绘图
所以当我旋转设备两次时,我得到了我想要的图。
我一直在绞尽脑汁想如何解决这个问题,但到目前为止没有任何效果。唯一让我知道发生了什么的事情是,在重新加载所有内容之前,容器视图的框架大小和 pageView 的视图不匹配。
我是堆栈溢出的新手,我不知道这是否足以继续。如果您需要任何其他信息,请告诉我,我很乐意提供更多背景信息。
任何帮助是极大的赞赏!
解决方案
欢迎!
尝试在您的代码中使用它:
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))
或者,您可以尝试使用此功能:
推荐阅读
- css - 如何修改平行元素
- python - 在詹金斯看不到 Cython 输出
- ios - Obj-C 将服务器响应作为参数并将其放入数组中
- android - 使用意图打开文件时如何修复内容无法显示的错误?
- jquery - 使用 JQuery 为每个元素“foreach”更改类的高度
- docker - 码头集装箱不要停止
- xml - 如何在 xslt 中为拆分的多 tiff 的名称添加变量
- java - 使用 DigestUtils 获取 base64 格式的 SHA256
- postgresql - 将 COPY 命令的文件结果插入表中
- java - Spring: How to combine @RestClientTest with a RestTemplate with @Qualifier?