在UIWebview中添加了空白 - 删除了iOS7和iOS8中的UIWebView空白

Dev*_*evC 31 objective-c uiwebview ios7 ios8

我正在加载本地html文件,因为iOS7在UIWebView上面添加了空白区域.(我无法发布图像,因为我没有足够的点.) 图像可以在这里看到 - 从iPhone模拟器拍摄,uiwebview被黑色包围框架,html内容是灰色的,但上面加了白色

我试图使用调整缩放

[webView stringByEvaluatingJavaScriptFromString:@"document. body.style.zoom = 5.0;"];
webView.scalesPageToFit = NO;
Run Code Online (Sandbox Code Playgroud)

我也尝试删除白色间距:

 NSString *padding = @"document.body.style.margin='0';document.body.style.padding = '0'";
[webView stringByEvaluatingJavaScriptFromString:padding];
Run Code Online (Sandbox Code Playgroud)

仍然没有运气.在桌面Chrome浏览器中没有空格.html文件是Google Swiffy文件 - 包含html和JSON.

编辑:更新图像

Yid*_*ing 142

尝试self.automaticallyAdjustsScrollViewInsets = NO; 在ViewDidLoad中.

ios 7自动为滚动视图添加64px.(状态栏和导航栏)

  • 很好,简单,工作完美!谢谢 (4认同)
  • 有关详细信息,请参阅https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/AppearanceCustomization.html (2认同)
  • 效果很好 - 但是使用Swift它需要是布尔值false:self.automaticallyAdjustsScrollViewInsets = false (2认同)

Tho*_*asW 5

此问题仅影响UIWebView它是否是父视图的第一个子视图.解决此问题的另一种方法是将另一个不可见的空视图添加到父视图作为第一个视图.在Interface Builder中添加零大小的子视图,并使用Editor-> Arrange-> Send to Back菜单命令.

如果您没有使用Interface Builder,而是继承UIWebView它,则可以通过创建UIView名为scrollFixView 的实例变量并覆盖以下方法来完成:

- (void)didMoveToSuperview
{
  [super didMoveToSuperview];

  if ([self superview].subviews.firstObject == self) {
    _scrollFixView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
    _scrollFixView.hidden = YES;
    [[self superview] insertSubview:_scrollFixView belowSubview:self];
  }
}

- (void)removeFromSuperview
{
  if (_scrollFixView) {
    [_scrollFixView removeFromSuperview];
    _scrollFixView = nil;
  }

  [super removeFromSuperview];
}
Run Code Online (Sandbox Code Playgroud)