如何消除PDFView"页面阴影"?

时间:2018-05-20 12:37:04

标签: ios pdfkit pdfview

当将iOS PDFView添加到UIView时,PDFView的页面区域会添加类似阴影的边框。有没有办法消除阴影?

我知道一些混乱的方法:在屏幕外扩展边界,覆盖白色UIView以隐藏阴影,或修改私有PDFPageView(到剪辑到边界)。我特别不想在这里关闭界限,并且不想弄乱别的黑客。

附上示例。 (例如,此处使用IRS表格; app与IRS无关...) enter image description here

3 个答案:

答案 0 :(得分:3)

更新:Apple对我的Radar回应说,iOS 12 beta 3中已添加了一个新属性PDFView.pageShadowsEnabled。这是隐藏阴影的正确方法。哇!

https://developer.apple.com/documentation/pdfkit/pdfview/3013838-pageshadowsenabled?changes=latest_minor

以下是iOS 12之前的信息:

我已与Apple(WWDC 2018实验室)确认没有任何官方方法可以掩盖阴影。有人告诉我只有一个内部方法可以执行此操作,并要求提交Radar公开该方法。雷达#40847614,如果有人想欺骗。

与此同时,我在深入研究视图层次结构,并将所有内容都裁剪到了边界。我不喜欢它,但它似乎起作用。阴影在旋转时返回,因此我在viewWillAppear和viewWillTransitionToSize中都将其称为。<​​/ p>

-(void)removeShadowFromPDFView:(UIView *)view {
    //Deep-dive into pdfView and set all views to clipsToBounds = YES

    view.clipsToBounds = YES;

    if ([view subviews].count == 0) {
        //No subviews to examine
        return;
    }

    for (UIView *subview in view.subviews) {
        view.clipsToBounds = YES;
        [self removeShadowFromView:subview];
    }
}

答案 1 :(得分:0)

我在拆分视图窗格时遇到了类似的问题。我所做的是检查子视图中的每个视图,以及它们的每个子视图,还有层,直到确定问题视图(花了一些时间)。然后我只是将该视图隐藏或不透明。

当我测试uiview子类时,我并没有硬着名称,而是使用格式字符串构建它,以免触发我的应用程序的自动测试(Apple批准)。

答案 2 :(得分:0)

在Swift中,您可以使用下面的代码行禁用页面阴影

pdfView.pageShadowsEnabled = false