在 iOS 11 使用 webview 发现顶部会有一个空白条,怎么也去不掉,通过设置 contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever 就可以解决了,具体的代码如下:

////ViewController.m//webView////Createdbyexchenon18/7/14.//Copyright©2018年exchen.Allrightsreserved.//#import"ViewController.h"@interfaceViewController()<UIWebViewDelegate>@property(nonatomic,strong)UIWebView*webView;@end@implementationViewController-(void)viewDidLoad{[superviewDidLoad];//Doanyadditionalsetupafterloadingtheview,typicallyfromanib.CGRectscreen=[[UIScreenmainScreen]bounds];//添加UIWebViewself.webView=[[UIWebViewalloc]initWithFrame:CGRectMake(0,0,screen.size.width,screen.size.height)];[self.viewaddSubview:self.webView];NSURL*url=[NSURLURLWithString:@"https://www.exchen.net"];NSURLRequest*request=[NSURLRequestrequestWithURL:url];[self.webViewloadRequest:request];self.webView.delegate=self;//解决iOS11屏幕顶部显示不全if([[UIDevicecurrentDevice].systemVersionfloatValue]>=11.0){self.webView.scrollView.contentInsetAdjustmentBehavior=UIScrollViewContentInsetAdjustmentNever;}}-(void)didReceiveMemoryWarning{[superdidReceiveMemoryWarning];//Disposeofanyresourcesthatcanberecreated.}-(void)webViewDidStartLoad:(UIWebView*)webView{NSLog(@"%@",NSStringFromSelector(_cmd));}//加载失败时调用-(void)webView:(UIWebView*)webViewdidFailLoadWithError:(NSError*)error{NSLog(@"%@",NSStringFromSelector(_cmd));NSLog(@"error:%@",error);UIAlertController*alertController=[UIAlertControlleralertControllerWithTitle:@"信息"message:@"连接服务器失败,请检查网络"preferredStyle:UIAlertControllerStyleAlert];UIAlertAction*cancelAction=[UIAlertActionactionWithTitle:@"确定"style:UIAlertActionStyleCancelhandler:^(UIAlertAction*action){exit(0);}];[alertControlleraddAction:cancelAction];[selfpresentViewController:alertControlleranimated:YEScompletion:nil];}-(BOOL)webView:(UIWebView*)webViewshouldStartLoadWithRequest:(NSURLRequest*)requestnavigationType:(UIWebViewNavigationType)navigationType{returntrue;}@end


原文地址:https://www.exchen.net/%E8%A7%A3%E5%86%B3-ios-11-webview-%E9%A1%B6%E9%83%A8%E7%A9%BA%E7%99%BD%E6%9D%A1%E7%9A%84%E9%97%AE%E9%A2%98.html