【发布时间】:2016-08-06 18:14:24
【问题描述】:
我正在将 PDF 加载到 UIWebview 中,并将背景颜色更改为清除并将不透明设置为 false。但是现在我的UIWebView 中有一个填充或边距,我想删除它,所以UIWebview 是屏幕。
我像这样创建了UIWebview:
let webview = UIWebView()
webview.frame = self.view.bounds
webview.scrollView.frame = webview.frame
webview.userInteractionEnabled = true
webview.scalesPageToFit = true
webview.becomeFirstResponder()
webview.delegate = self
webview.scrollView.delegate = self
webview.opaque = false
webview.backgroundColor = UIColor.clearColor()
self.view.addSubview(webview)
webview.loadRequest(NSURLRequest(URL:url))
webview.gestureRecognizers = [pinchRecognizer, panRecognizer]
我将它应用于 webViewDidFinishLoad 方法
func webViewDidFinishLoad(webView: UIWebView) {
let padding = "document.body.style.margin='0';document.body.style.padding = '0'"
webView.stringByEvaluatingJavaScriptFromString(padding)
}
但仍有填充或边距,看起来像这样:
我该如何解决这个问题?
我需要这个修复的原因是因为我将把这个 UIWebView 保存为 PDF,当我保存它时,还有额外的间距,这是我的 PDF 生成代码:
func drawPDFUsingPrintPageRenderer(printPageRenderer: UIPrintPageRenderer) -> NSData! {
let data = NSMutableData()
UIGraphicsBeginPDFContextToData(data, CGRectZero, nil)
UIGraphicsBeginPDFPage()
printPageRenderer.drawPageAtIndex(0, inRect: UIGraphicsGetPDFContextBounds())
UIGraphicsEndPDFContext()
return data
}
还有更多
let screenHeight = appDelegate.webview!.scrollView.bounds.size.height
let heightStr = appDelegate.webview!.scrollView.bounds.size.height
let height = heightStr
let pages = ceil(height / screenHeight)
let pdfMutableData = NSMutableData()
UIGraphicsBeginPDFContextToData(pdfMutableData, appDelegate.webview!.scrollView.bounds, nil)
for i in 0..<Int(pages)
{
if (CGFloat((i+1)) * screenHeight > CGFloat(height)) {
var f = appDelegate.webview!.scrollView.frame
f.size.height -= ((CGFloat((i+1)) * screenHeight) - CGFloat(height));
appDelegate.webview!.scrollView.frame = f
}
UIGraphicsBeginPDFPage()
let currentContext = UIGraphicsGetCurrentContext()
appDelegate.webview!.scrollView.setContentOffset(CGPointMake(0, screenHeight * CGFloat(i)), animated: false)
appDelegate.webview!.scrollView.layer.renderInContext(currentContext!)
}
UIGraphicsEndPDFContext()
【问题讨论】:
-
pdf 内容本身是否有可能被插入格式?无论如何,不要弄乱滚动视图框架。这无济于事,因为 Web 视图可能位于其父级的起源,否则将是有害的。我还猜想 YES 已经是 scalesPageToFit 的默认值。我能提供的最好的建设性想法是 webView.scrollView.contentInset。
-
你能把这个放在答案上吗
标签: ios objective-c swift uiwebview