0

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

在此处输入图像描述 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];

        }
4

2 回答 2

1

UIWebView有一个内置的UIScrollView,所以你实际上不需要手动管理它。

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

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

//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];

YOURFILENAME并且YOURFILETYPE显然要替换为您自己的代码。

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

于 2013-09-03T12:43:57.643 回答
0

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

缩放页面以适合

于 2013-09-03T13:28:59.613 回答