我正在使用整个设备屏幕在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); }
在这里做的优点是,视图的大小和方向已经在这里确定,您可以获得准确的测量.