我已经从资源包的 UIWebView 中加载了一个 PDF 文件。
现在,我无法缩放/捏合 PDF 文件。
我找到了以下 2 个相关链接,但没有一个答案被标记为正确 -
如何使已从资源包中加载到 UIWebView 中的 PDF 可缩放/可收缩,以下解决方案是否有效?
谢谢你的帮助。
我已经从资源包的 UIWebView 中加载了一个 PDF 文件。
现在,我无法缩放/捏合 PDF 文件。
我找到了以下 2 个相关链接,但没有一个答案被标记为正确 -
如何使已从资源包中加载到 UIWebView 中的 PDF 可缩放/可收缩,以下解决方案是否有效?
谢谢你的帮助。
在Interface Builder上的 WebView 中,添加检查Scale Page To Fit并启用 Pinch ZoomIn ZoomOut ;)
或者,如果您想更好地处理您的 PDF,请尝试查看以下代码:
- (void)viewDidLoad 
{
    [super viewDidLoad];
    [webView loadRequest:[NSURLRequest requestWithURL:@"http:pdfURL"]];
    NSString *path = [[NSBundle mainBundle] pathForResource:@"yourPDFFile" ofType:@"pdf"];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest * request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];
    //--------------AND HERE USE SCALE PAGE TO FIT------------------//
    [webView setScalesPageToFit:YES];
}
希望这对您有所帮助。
//试试这样
NSString *urlstr=@"www.example.com/yy.pdf";
web=nil;
web=[[UIWebView alloc] initWithFrame:CGRectMake(0, 98, 320, 367)];
web.delegate=self;
[self.view addSubview:web];
[web loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlstr]]];
UIPinchGestureRecognizer *pgr = [[UIPinchGestureRecognizer alloc]
                                 initWithTarget:self action:@selector(handlePinch:)];
 pgr.delegate = self;
 [web addGestureRecognizer:pgr];
// 目标动作
 - (IBAction)handlePinch:(UIPinchGestureRecognizer *)recognizer
 {
  recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
recognizer.scale = 1;
  }
在此之前在 .h 中添加 UIGestureRecognizerDelegate。希望对你有帮助。。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:documentsDirectory]) 
{
    NSURL *url = [NSURL fileURLWithPath:strFileName];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView setScalesPageToFit:YES];
    [webview loadRequest:request];
}