UIWebview全屏幕大小
我试图在UIWebview中使用设备的整个屏幕显示一个PDF,除了状态栏和顶部栏。 到目前为止,我创build了IBOutlet UIWebview *webview;
在我的.h文件中。 我在故事板中连接了webview,并在.m文件中写下了以下代码:
- (void)viewDidLoad { [super viewDidLoad]; webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 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]; }
在我的3.5英寸的PDF显示正确,但在我的4英寸的显示屏,底部被切断。 当我旋转到横向视图时,这更加明显。 大约33%的屏幕根本不使用。 我怎样才能解决这个问题? 我知道它必须有关于我的代码上面的UIWebview维度( webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
),但有没有更好的方法来简单地显示在整个屏幕上的webview,没有指定一个特定的屏幕高度和宽度?
一件便宜的事情就是设置webview的框架覆盖 – (void)viewDidLayoutSubviews
- (void)viewDidLayoutSubviews { webView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); }
在这里做的好处是视图的大小和方向已经在这里确定了,你可以得到一个精确的测量。
使用自动布局
确保没有选中“约束边界”选项,所有的约束值都是0:
而你的webview是你主视图的第一个孩子:
没有自动布局
更改webview自动连接:
处理iOS6,7和不同屏幕尺寸兼容性的头痛之后,我使用这个:
- (void)viewDidLoad { [super viewDidLoad]; self.webview = [[UIWebView alloc] init]; // More setting your webview here // Set webview to full screen self.view = self.webview; [self.webview loadRequest:aRequest]; }
通过selectResolve Auto Layout Issues
菜单下的Reset to Suggested Constraints
( Reset to Suggested Constraints
,我能够正确地为我工作。