这是我的 PDF 在 UIWebView
中加载时的样子:(我放入了蓝色渐变作为 UIWebView
的背景,以便您可以看到我的内容意味着更好)。
我想将其居中,以便底部边距与顶部边距相同。我如何使用 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/