我正在使用整个设备屏幕在UIWebview中显示一个pdf,除了状态栏和顶部栏.到目前为止,我创建了IBOutlet UIWebview * webview;在我的.h文件.我将Webview连接到我的故事板,并在.m文件中写下面的代码:
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- webview = [[UIWebView alloc] initWithFrame:CGRectMake(0,320,460)];
- webview.scalesPageToFit = YES;
- webview.autoresizesSubviews = YES;
- webview.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
- [webview setBackgroundColor:[UIColor clearColor]];
- NSString *path = [[NSBundle mainBundle] pathForResource:@"Chart" ofType:@"pdf"];
- NSURL *targetURL = [NSURL fileURLWithPath:path];
- NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
- [webview loadRequest:request];
- [self.view addSubview:webview];
- }
该pdf在我的3.5英寸正确显示,但在我的4英寸显示屏中,底部被切断.当我旋转到风景视图时,这是更显着的.大约33%的屏幕根本不使用.如何解决这个问题?我知道它必须与我上面的代码中的UIWebview维度有关(webview = [[UIWebView alloc] initWithFrame:CGRectMake(0,460)];),但是有一个更好的方法来简单地显示webview在整个屏幕上,没有指定一个特定的屏幕高度和宽度?
解决方法
一个便宜的事情是将webview的框架设置为覆盖 – (void)viewDidLayoutSubviews
- - (void)viewDidLayoutSubviews {
- webView.frame = CGRectMake(0,self.view.frame.size.width,self.view.frame.size.height);
- }
在这里做的优点是,视图的大小和方向已经在这里确定,您可以获得准确的测量.