【问题标题】:Swift PDFKit autoscale zooms to wrong pageSwift PDFKit 自动缩放缩放到错误的页面
【发布时间】:2018-10-17 11:45:21
【问题描述】:

我正在尝试使用 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

【问题讨论】:

  • 如果您要提出问题并且有人回答,那么回答是专业且礼貌的。如果它解决了您的问题,请点赞并接受,如果没有,请提供更多信息

标签: ios pdfkit


【解决方案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)

【讨论】:

  • 我必须先添加子视图才能添加约束,否则我会收到错误“无法使用锚激活约束”
【解决方案2】:

这是仅在 iPad 上的错误(在 iPhone 上运行良好),我确实发送了错误报告 他们回应说这是另一份报告的副本 这意味着他们知道它并希望他们会尽快修复它

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 2018-12-13
    • 2012-09-07
    • 2014-02-04
    • 2019-08-16
    • 2020-07-09
    • 1970-01-01
    • 2019-11-07
    • 2016-05-30
    相关资源
    最近更新 更多