ios - 将 PDF 置于 UIWebView 中心

标签 ios pdf uiwebview

这是我的 PDF 在 UIWebView 中加载时的样子:(我放入了蓝色渐变作为 UIWebView 的背景,以便您可以看到我的内容意味着更好)。

Hi StackOverflow!

我想将其居中,以便底部边距与顶部边距相同。我如何使用 PDF(非本地)执行此操作?

最佳答案

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 10 * NSEC_PER_MSEC), dispatch_get_main_queue(), ^{
        CGFloat topInset = floor(([[self webView] frame].size.height - [[[self webView] scrollView] contentSize].height) / 2);
        [[[self webView] scrollView] setContentInset:UIEdgeInsetsMake(topInset, 0, 0, 0)];
        [[[self webView] scrollView] setContentOffset:CGPointMake(0, -topInset) animated:NO];
    });
}

这使用了UIWebView的内部UIScrollView。内容大小是从 ScrollView 中获取的,并取自整个 Web View 。这提供了“额外”空间。将其减半并将其用作顶部插图,然后将其居中。您确实需要首先使用 setContentOffset: 将 View 滚动到正确的位置,因为这似乎是在我们设法设置插图之前在内部设置的。从那时起,一切都应该正常。

不幸的是,dispatch_after 是 iOS 8 中的一项要求。如果在 webViewDidFinishLoad: 之后过早获取,contentSize 将为 0。

关于ios - 将 PDF 置于 UIWebView 中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14307339/

相关文章:

ios - 如何在containerView中重新加载tableView?

iphone - 我的 iPhone 应用程序如何检测自己的版本号?

javascript - jsPDF Autotable 在每个表格上方添加标题

javascript - UIWebView 中的点击事件不起作用

javascript - UIWebView 调用带有参数的 JS 将不起作用

IOS推送通知删除

ios - 为什么我的ScrollView无法滚动更新,添加源代码。请帮助

带有 Spread PDF 生成器包的 CSS

php - 如何从PDF文档中提取文本?

iphone - 如何从 UIWebview 或 dealloc UIWebview 中删除缓存