Swift PDFKit自动缩放会缩放到错误的页面

时间:2018-10-17 11:45:21

标签: ios pdfkit

我正在尝试使用PDFkit在iOS设备(ipad)上显示pdf。由于某种原因,当显示屏打开时,swift将显示第二页。我发现问题的一部分是preview.autoscale。当我将其设置为false时,pdf不是全屏显示,而是从第一页开始。因此,我认为问题是自动缩放的“缩放”部分正在第一页上放大。我确实在stackoverflow(PDFKit: PDFView doesn't resize when device rotated)上找到了一个类似的问题,但是该问题没有奏效。下面是相关代码:

    if let FBdocument = PDFDocument(url: fileURL) {
        pdfView.document = FBdocument
        pdfView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(pdfView)

        pdfView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor,constant: 0.0).isActive = true
        pdfView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor,constant: 0.0).isActive = true
        pdfView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor,constant: 0.0).isActive = true

        pdfView.bottomAnchor.constraint(equalTo: letdothis_button.topAnchor,constant: 0.0).isActive = true


        pdfView.autoScales = true

3 个答案:

答案 0 :(得分:1)

我也遇到自动秤的问题,我发现移动:

pdfView.autoScales = true

以及之前的任何其他定位方法:

pdfView.document = FBdocument

然后最后添加子视图:

 view.addSubview(pdfView)

因此,我将使用:

if let FBdocument = PDFDocument(url: fileURL) {

    pdfView.translatesAutoresizingMaskIntoConstraints = false

    pdfView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor,constant: 0.0).isActive = true
    pdfView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor,constant: 0.0).isActive = true
    pdfView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor,constant: 0.0).isActive = true

    pdfView.bottomAnchor.constraint(equalTo: letdothis_button.topAnchor,constant: 0.0).isActive = true


    pdfView.autoScales = true

    pdfView.document = FBdocument

    view.addSubview(pdfView)

答案 1 :(得分:0)

这是仅在iPad上存在的错误(与iPhone兼容),我确实发送了错误报告 他们回答说这是另一份报告的副本 这意味着他们知道这一点,并希望他们会尽快解决

答案 2 :(得分:-1)

在viewDidAppear中添加文档有效

  • (void)viewDidAppear:(BOOL)动画
    {
    [super viewDidAppear:animated];
    PDFDocument *pdfDocument = [[PDFDocument alloc] initWithURL:self.pdfURL];
    self.pdfView.document = pdfDocument;
    }