Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 4和iOS 5在读取pdf文件时的UIWebView差异_Ios_Webview - Fatal编程技术网

iOS 4和iOS 5在读取pdf文件时的UIWebView差异

iOS 4和iOS 5在读取pdf文件时的UIWebView差异,ios,webview,Ios,Webview,我发现iOS 4和iOS 5之间的差异导致我的代码中出现错误。当我创建一个UIWebView时,它还创建了一个名为UIWebBrowserView的子视图,框架大小为577 x 533。然后,我在UIWebView中加载了一个PDF文件,这里是iOS 4和iOS 5之间的不同之处。在iOS 4中,当处理到达方法“webViewDidFinishLoad:”时,UIWebBrowserView仍然存在,第577 x 2947帧(我想是pdf的大小),而在iOS 5中,UIWebBrowserVie

我发现iOS 4和iOS 5之间的差异导致我的代码中出现错误。当我创建一个
UIWebView
时,它还创建了一个名为
UIWebBrowserView
的子视图,框架大小为577 x 533。然后,我在
UIWebView
中加载了一个PDF文件,这里是iOS 4和iOS 5之间的不同之处。在iOS 4中,当处理到达方法“webViewDidFinishLoad:”时,
UIWebBrowserView
仍然存在,第577 x 2947帧(我想是pdf的大小),而在iOS 5中,
UIWebBrowserView
不再存在,在它的位置上有一个
UIWebPDFView
和第577 x 533帧(这里我期待的是一个大小为577 x 2947的帧)。最后,我引发了一个事件,视图与我期望的一样(
UIWebBrowserView
iOS 4中的577 x 2947帧和iOS 5中的
UIWebPDFView
中的577 x 2947.4帧)

问题是,当加载pdf文件时,当处理到达方法“webViewDidFinishLoad:”时:我想把笔记放在PDF文件中,但在这种方法中,
UIWebPDFView
还不符合PDF的实际大小。如果我只是把笔记放在那里,它们就不会出现。在iOS 4中它可以工作,但在iOS 5中它不再工作。任何人都可以帮助我如何将笔记放在webview的加载上

下面的代码显示了iOS和bellow在日志中的不同行为

ViewController.h
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UIWebViewDelegate, UIGestureRecognizerDelegate>
{
    IBOutlet UIView *view;
    IBOutlet UIWebView * webView;
}

- (void)handleTap:(UITapGestureRecognizer *)recognizer;

@end

ViewController.m
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    [webView setUserInteractionEnabled:YES];
    [view bringSubviewToFront:webView];

    //Load view with a pdf file
    NSString *path = [[NSBundle mainBundle] pathForResource:@"pdf_teste" ofType:@"pdf"];
    NSData *pdfData = [NSData dataWithContentsOfFile:path];
    [webView loadData:pdfData MIMEType:@"text/pdf" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];

    //Log
    NSLog(@"On viewDidLoad: %@", [[webView viewForZoomingInScrollView:(UIScrollView *)[[webView subviews] objectAtIndex:0]] description]);

    //Add a tap gesture recognizer
    UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
    recognizer.delegate = self;
    [webView addGestureRecognizer:recognizer];
}

- (void)webViewDidFinishLoad:(UIWebView *)view
{
    //Log
    NSLog(@"On webViewDidFinishLoad: %@", [[webView viewForZoomingInScrollView:(UIScrollView *)[[webView subviews] objectAtIndex:0]] description]);

    //I’d like to insert the saved notes here.

}

- (void)handleTap:(UITapGestureRecognizer *)recognizer
{
    //Log
    NSLog(@"On Tap Event: %@", [[webView viewForZoomingInScrollView:(UIScrollView *)[[webView subviews] objectAtIndex:0]] description]);
}

@end
ViewController.h
#进口
@界面ViewController:UIViewController
{
IBUIView*视图;
ibuiwebview*webView;
}
-(void)handleTap:(UITapGestureRecognitor*)识别器;
@结束
ViewController.m
#导入“ViewController.h”
@界面视图控制器()
@结束
@实现视图控制器
-(无效)viewDidLoad
{
[超级视图下载];
//加载视图后,通常从nib执行任何其他设置。
[webView setUserInteractionEnabled:是];
[视图将子视图带到前面:webView];
//加载带有pdf文件的视图
NSString*path=[[NSBundle mainBundle]pathForResource:@“pdf”类型的“pdf_teste”;
NSData*pdfData=[NSData dataWithContentsOfFile:path];
[webView加载数据:pdfData MIMEType:@“text/pdf”text编码名称:@“UTF-8”baseURL:[NSURL URLWithString:@”“];
//日志
NSLog(@“在视图上加载:%@”,[[webView视图用于缩放CrollView:[UICrollView*)[[webView子视图]对象索引:0]]说明];
//添加轻触手势识别器
UITapGestureRecognizer*识别器=[[UITapGestureRecognizer alloc]initWithTarget:自操作:@selector(handleTap:)];
recognizer.delegate=self;
[webView AddGestureRecognitor:识别器];
}
-(无效)webViewDidFinishLoad:(UIWebView*)视图
{
//日志
NSLog(@“在webViewDidFinishLoad:%@”,[[webView视图用于缩放CrollView:[UICrollView*)[[webView子视图]对象索引:0]]说明];
//我想在这里插入保存的笔记。
}
-(无效)handleTap:(UITapGestureRecognitor*)识别器
{
//日志
NSLog(@“点击事件:%@”,[[webView视图用于缩放CrollView:[UIScrollView*)[[webView子视图]对象索引:0]]说明];
}
@结束

日志:

iOS 5.1

2012-03-30 14:24:28.075 ViewDiLoad上的WebViewTest[173:707]加载:>

2012-03-30 14:24:28.823 webViewDidFinishLoad上的WebViewTest[173:707]加载:> 3月30日14:24:29 iPad2 de ASDS WebViewTest[173]:OPDILG+TT857o00:FT_Select_Charmap失败:错误38

2012-03-30 14:24:47.167WebViewTest[173:707]关于Pan的事件:> iOS 4.3.5

2012-03-30 14:13:46.285 ViewDiLoad上的WebViewTest[823:607]加载:>

2012-03-30 14:13:47.049 webViewDidFinishLoad上的WebViewTest[823:607] 3月30日14:13:47 BNBConsult01 WebViewTest[823]:OPDILG+TT857o00:FT_Select_Charmap失败:错误38

2012-03-30 14:14:48.199网络视图测试[823:607]泛网事件:>