如何在UIWebview整个视图中全屏显示PDF文件?

时间:2013-09-03 12:34:58

标签: ios objective-c pdf uiwebview

我正在尝试使用设备的整个屏幕在UIWebview中显示pdf。我有一个在iPad上运行的xcode应用程序。我有一个滚动视图滚动pdf页面UIWebview是uiscrollview的子视图。 PDF可以从互联网上下载,没有任何问题, 目前,PDF在显示时仅在纵向模式下使用uiwebview屏幕的最上半部分。我需要它来跨越UIWebview的整个视图。

enter image description here     NSString * strPageURL = [dictPage valueForKey:@“link”];

        strPageURL = [strPageURL stringByReplacingOccurrencesOfString:@"\n" withString:@""];
        strPageURL = [strPageURL stringByReplacingOccurrencesOfString:@"\t" withString:@""];
        strPageURL = [strPageURL stringByReplacingOccurrencesOfString:@" " withString:@""];

        NSString* strFileName = [strPageURL lastPathComponent];
                NSString *strDestFile = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/%@",strFileName]];

        CGRect rect = CGRectMake(xPos, 0, scrollView.frame.size.width, scrollView.frame.size.height);     
        UIWebView * webView = [[UIWebView alloc] initWithFrame:rect];
        webView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
        [webView setContentMode:UIViewContentModeScaleAspectFit];
        [webView setScalesPageToFit:YES];
        webView.backgroundColor = [UIColor whiteColor];
        webView.tag=3000+i;

        BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:strDestFile];

        if(fileExists)
        {

            NSURL *url = [[NSURL alloc] initFileURLWithPath:strDestFile];

            [webView loadRequest:[NSURLRequest requestWithURL:url]];
            [webView setDelegate:self];
            [scrollView addSubview:webView];

        }

2 个答案:

答案 0 :(得分:1)

UIWebView内置了UIScrollView,因此您实际上无需手动管理此内容。

您只需将PDF加载到UIWebView中,它就会自动以正确的形式显示。

您可以通过您的网址请求执行此操作:

//first create the webview
UIWebView *theWebView = [[UIWebView alloc] initWithFrame:[self.view bounds]];
[theWebView setContentMode:UIViewContentModeScaleAspectFit];
[theWebView setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];
[theWebView setScalesPageToFit:YES];

//then load the correct file
NSString *filePath = [[NSBundle mainBundle] pathForResource:YOURFILENAME ofType:YOURFILETYPE];
NSURL *filePathURL = [NSURL fileURLWithPath:filePath];        
[theWebView loadRequest:[NSURLRequest requestWithURL:filePathURL]];

//then add to your view
[self.view addSubview:theWebView];

YOURFILENAMEYOURFILETYPE显然会被您自己的代码替换。

如果它在到达横向时仍然没有调整大小,你可能需要在自动旋转方法中添加一些代码来手动调整大小 - 尽管setAutoresizingMask行应该为你处理它。

答案 1 :(得分:0)

我认为您不必使用ScrollView。只需添加Web视图即可。单击XCode Storyboard(或xib文件)中的Web View。在右侧栏中,转到“属性检查器”(参见附带的屏幕截图)。选中“缩放页面以适合”。

Scales Page to Fit