iOS7 UIWebView在初始加载时具有错误的scrollview插入

iOS7 UIWebView在初始加载时具有错误的scrollview插入,ios7,uiwebview,uiscrollview,Ios7,Uiwebview,Uiscrollview,每当我在webView中显示PDF文件时,它的初始滚动视图插入设置似乎不正确,但一旦我开始滚动或缩放,它就会跳到正确的位置:/ PDF已加载,但部分位于导航栏下 一旦我开始滚动或放大,它就会捕捉到预期的默认位置 如果我将PNG加载到同一个webview中,它们具有完美的插入,并显示在导航栏的正下方(中间没有一行黑色像素) 有人知道我怎么解决这个问题吗 某些webView设置: webView.clipsToBounds = NO; webView.scalesPageToFit = YES;

每当我在webView中显示PDF文件时,它的初始滚动视图插入设置似乎不正确,但一旦我开始滚动或缩放,它就会跳到正确的位置:/

PDF已加载,但部分位于导航栏下

一旦我开始滚动或放大,它就会捕捉到预期的默认位置

如果我将PNG加载到同一个webview中,它们具有完美的插入,并显示在导航栏的正下方(中间没有一行黑色像素)

有人知道我怎么解决这个问题吗

某些webView设置:

webView.clipsToBounds = NO;
webView.scalesPageToFit = YES;

我实施了以下解决方法:

- (void)webViewDidFinishLoad:(UIWebView *)aWebView {

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.15 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        self.webView.scrollView.contentOffset = CGPointMake(0, -(self.webView.scrollView.contentInset.top));
    });

}

加载WebView时,它会稍微“跳跃”,但至少contentOffset设置正确。您可能还需要微调延迟(本例中为0.15毫秒)。

我遇到了同样的问题;很烦人。我首先将我的WebViewController设置为UIScrollViewDelegate,从而解决了这个问题

@interface WebViewController () <UIWebViewDelegate, UIScrollViewDelegate>
然后,每当我检测到一个滚动条时,我只是防止偏移量抵消我的contentInset。我在缩放用户时排除了这种效果,因此如果用户恰好落在这个边界上,文档不会跳转

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if(scrollView.contentOffset.y == 0 && !scrollView.zooming)
        [scrollView setContentOffset:CGPointMake(0.0, -(scrollView.contentInset.top))];
}

这里的优点是,您不需要依赖任何计时元素,并且在执行分派时,您不会看到PDF跳转。您需要的实际contentInset也是动态确定的

您找到解决方案了吗?选择了非半透明导航栏:/有相同的问题,请在此线程上提供帮助。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if(scrollView.contentOffset.y == 0 && !scrollView.zooming)
        [scrollView setContentOffset:CGPointMake(0.0, -(scrollView.contentInset.top))];
}