UIWebView:用PDF文件填充屏幕

时间:2016-05-16 14:03:12

标签: ios pdf uiwebview

我的iOS应用中有UIWebView包含PDF文件。这个PDF文件非常广泛。打开此视图时,设备会将内容与屏幕匹配。但它应该填满屏幕并“剪切”文件。

就像这样:enter image description here

但是在启动应用/视图时应该是这样的:enter image description here

这是我正在使用的代码:

- (void)viewDidLoad {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"File" ofType:@"pdf"];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [_ImageInWebView loadRequest:request];
    [_ImageInWebView setScalesPageToFit:YES];

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

你知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

这里有两件事情可做。缩放页面以适合屏幕将生成在顶部看到的图像(图像的整个宽度适合屏幕)。在这种情况下,这不是我们想要的,所以我们应该禁用setScalesPageToFit。 OP已经提到仅此一项对他们没有用。

我们禁用缩放后应该做的另一件事是导航到我们想要显示的PDF部分。解决方案可能因项目特定设置而异。如果打开或关闭自动布局,也会有所不同。

这是我过去用于在网络视图中居中PDF的内容。请注意,我已将此代码用于较高的PDF文件,但在经过微小修改后也应使用宽代码。

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 10 * NSEC_PER_MSEC), dispatch_get_main_queue(), ^{
    CGFloat topInset = floor(([[self _ImageInWebView] frame].size.height - [[[self _ImageInWebView] scrollView] contentSize].height) / 2);
    [[[self _ImageInWebView] scrollView] setContentInset:UIEdgeInsetsMake(topInset, 0, 0, 0)];
    [[[self _ImageInWebView] scrollView] setContentOffset:CGPointMake(0, -topInset) animated:NO];
});