【问题标题】:iOS PDFKit - width issueiOS PDFKit - 宽度问题
【发布时间】:2019-02-03 15:09:57
【问题描述】:

在我的应用程序中,我使用 PDFKit 来显示简单的 PDF。

PDF 显示在 ViewController 上。 PDF 要设置为屏幕宽度,仅此而已。我在情节提要中将 PDFView 的约束设置为“与超级视图等宽”。如果 PDF 跨越多个页面,则用户可以垂直滚动。

一切似乎都很好,除了 iPhone SE / 5 以外的所有屏幕尺寸都可以完美运行,其中 PDF 宽度大于屏幕尺寸,因此需要水平滚动才能查看整个文档。

当我设置约束“与超级视图相等宽度”时,不确定为什么 PDFView 的宽度大于屏幕视图

下面是我的一个视图控制器的代码,它显示了一个 PDF

import Foundation
import UIKit
import PDFKit

class DisclaimerViewController: UIViewController, UIScrollViewDelegate {


@IBOutlet var pdfView: PDFView!



override func viewDidLoad() {
    super.viewDidLoad()

    if let path = Bundle.main.path(forResource: "Disclaimer", ofType: "pdf") {
        let url = URL(fileURLWithPath: path)
        if let pdfDocument = PDFDocument(url: url) {


            pdfView.document = pdfDocument
            pdfView.autoScales = true
            pdfView.maxScaleFactor = 4.0
            pdfView.minScaleFactor = pdfView.scaleFactorForSizeToFit
            pdfView.displayMode = .singlePageContinuous


        }
    }

    // colour scheme

    //navigationController?.navigationBar.barTintColor = UIColor(red:0.6, green:0.4, blue:1.0, alpha:1.0)
    self.view.backgroundColor = UIColor.black
}





override var preferredStatusBarStyle : UIStatusBarStyle {
    return UIStatusBarStyle.lightContent
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)


}

@IBAction func back(_ sender: AnyObject) {


    self.dismiss(animated: true, completion: nil)
}

}

请注意,这是在模拟器中进行的测试。这是模拟器错误吗?还是我错过了什么?

提前致谢

【问题讨论】:

    标签: ios pdfkit


    【解决方案1】:

    我发誓我想在 Xcode 和它的模拟器上绑一块大砖,然后把它们都扔到海底......

    这似乎是一个模拟器错误。

    当我的故事板设置为以 iPhone SE / 5 大小查看视图控制器时,实际 ViewControllers、约束等没有任何变化,PDFView 的 iPhone SE / 5 模拟器宽度与 iPhone/ 的宽度完美匹配东南。没有水平滚动。

    但如果故事板设置为查看更大的屏幕尺寸,那么 iPhone SE/5 的模拟器太宽,导致水平滚动。

    从字面上看,只是改变您查看故事板的方式似乎打破了模拟器中的宽度限制。

    我希望这对其他人有所帮助,并避免像我一样浪费时间......

    【讨论】:

    • 嗨,我遇到了同样的模拟器问题。即使应用在物理设备上运行,此错误是否仍然存在?
    • 嗨,刘易斯,恐怕我记不清了!但是我不这么认为
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2011-07-19
    • 2011-09-25
    • 1970-01-01
    相关资源
    最近更新 更多