【问题标题】:How to remove back shadow in UIWebView while loading PDF in swift如何在快速加载 PDF 时删除 UIWebView 中的背影
【发布时间】:2016-06-05 00:09:27
【问题描述】:

我正在尝试在 UIWebView 中显示 PDF 文件。工作正常。但是,PDF 视图在背面有阴影。我不知道如何完全删除它。

我的代码:

func webViewDidFinishLoad(webView: UIWebView) {
    for object in webView.scrollView.subviews
    {
            if NSStringFromClass((object.classForCoder)) == "UIWebPDFView"
            {
                let pdfVi = object

                for pdf_view_sub in (pdfVi.subviews)
                {
                    if NSStringFromClass((pdf_view_sub.classForCoder)) == "UIPDFPageView"
                    {
                        let pdfVi_lay = pdf_view_sub
                        pdfVi_lay.layer.shadowOpacity = 0.0
                    }
                }
            }
        }
}

我的形象

当我们开始滚动时,上面的代码不起作用。这意味着,如果我们试图向上滚动,PDF 的背面会自动出现相同的阴影。

【问题讨论】:

    标签: ios swift uiwebview uiwebviewdelegate


    【解决方案1】:

    就我而言,我也有类似的情况。我只需要为 PDF 查看器在 UIWebView 中更改 Swift3 中的边框和背景颜色,并且为 PDF 以外的其他文件保留另一种颜色很重要。

    这不是确切的解决方案,但它是适合您的问题的解决方案。无论如何,这个解决方案对更多场景很有用。

    这是我的解决方案:

        var color = UIColor.white
        for object in webView.scrollView.subviews {
            if NSStringFromClass((object.classForCoder)) == "UIWebPDFView" {
                for pdf in (object.subviews) {
                    if NSStringFromClass((pdf.classForCoder)) == "UIPDFPageView" {
                        color = UIColor(red:0.502, green:0.502, blue:0.502, alpha:1)
                    }
                }
            }
        }
    
        webView.backgroundColor = color
        webView.layer.shadowOpacity = 0.0
        webView.scrollView.backgroundColor = color
        webView.scrollView.layer.shadowOpacity = 0.0
        for object in webView.scrollView.subviews {
            object.backgroundColor = color
            object.layer.shadowOpacity = 0.0
            if NSStringFromClass((object.classForCoder)) == "UIWebPDFView" {
                object.backgroundColor = color
                object.layer.shadowOpacity = 0.0
                for pdf in (object.subviews) {
                    pdf.backgroundColor = color
                    pdf.layer.shadowOpacity = 0.0
                    if NSStringFromClass((pdf.classForCoder)) == "UIPDFPageView" {
                        pdf.backgroundColor = color
                        pdf.layer.shadowOpacity = 0.0
                    }
                }
            }
        }
    

    【讨论】:

      【解决方案2】:

      iOS 12 中的新功能和PDFKit 中的PDFView 我们有一个可以设置为false 的属性

      pageShadowsEnabled = false
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-07
        • 1970-01-01
        • 1970-01-01
        • 2013-09-10
        • 1970-01-01
        • 2015-06-23
        相关资源
        最近更新 更多