gpt4 book ai didi

ios - UIWebview 删除填充/边距

转载 作者:IT王子 更新时间:2023-10-29 05:49:57 27 4
gpt4 key购买 nike

我正在将 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)
}

但是还是有padding或者margin,看起来是这样的:

enter image description here

我该如何解决这个问题?

我需要这个修复的原因是因为我要将这个 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()

最佳答案

当 Web View 位于原点时,将 ScrollView 框架设置为 Web View 框架将无效,否则会产生不良影响。

调整 ScrollView contentInset:

// set t,l,b,r to be negative CGFloat values that suit your content
webView.scrollView.contentInset = UIEdgeInsetsMake(t,l,b,r);

关于ios - UIWebview 删除填充/边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38807374/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com