iOS PDFKit-宽度问题

时间:2018-08-28 22:38:19

标签: ios pdfkit

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

在ViewController上显示PDF。将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)
}

}

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

预先感谢

1 个答案:

答案 0 :(得分:1)

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

这似乎是模拟器错误。

设置我的情节提要以查看iPhone SE / 5尺寸的视图控制器,而没有更改实际的ViewController,约束等时,PDFView的iPhone SE / 5仿真器宽度与iPhone / 5的宽度完全匹配SE。没有水平滚动。

但是,如果将情节提要板设置为查看更大的屏幕尺寸,则iPhone SE / 5的模拟器将设置得太宽,导致水平滚动。

从字面上看,仅更改查看故事板的方式似乎会破坏模拟器中宽度的限制。

我希望这对其他人有帮助,并且避免了我遭受的同样浪费的时间...