2016-06-07 19 views
6

WKWebView non viene ridimensionato quando il contenuto cambia.WKWebView non ridimensiona quando il contenuto cambia

Ecco un frammento di codice:

@IBOutlet weak var containingView: UIView! 
var webView: WKWebView! 

override func viewDidLoad() 
{ 
    super.viewDidLoad() 

    let contentController = WKUserContentController(); 
    self.webView = WKWebView(frame: CGRectMake(0, 0, self.view.frame.width, self.view.frame.height), configuration: WKWebViewConfiguration()) 
    self.webView.autoresizingMask = [.FlexibleHeight] 
    self.webView.loadHTMLString(__, baseURL: __)) 
    self.webView.scrollView.bounces = false 
    self.webView.scrollView.scrollEnabled = false 

    self.containingView.addSubview(self.webView) 
} 

Cosa func dovrebbero essere aggiunti in modo da poter intercettare dimensioni del contenuto di essere cambiato e modificare la dimensione containingView di conseguenza?

+0

WebView automaticamente scorre in modo perché avete bisogno la sua altezza di cambiare al contenuto? – Shubhank

+0

Non voglio che sia scorrevole. Voglio che la vista contenente per riscalare in base al contenuto web – Luda

+1

sarà necessario utilizzare javascript per rilevare altezza contenuto webview e impostare manualmente l'altezza – Shubhank

risposta

-3

Concettualmente in obiettivo c si dovrebbe fare come di seguito.

due cose: assicurarsi di avere queste proprietà:

self.webView.scalesPageToFit = YES; 
self.webView.contentMode = UIViewContentModeScaleAspectFit; 

E infine calcolare WebView altezza contenuto come: - webView.isLoading è uno dei beni più importanti. In realtà in una singola chiamata a un URL web viene chiamato più volte.

- (void)webViewDidFinishLoad:(UIWebView *)webView{ 
if (webView.isLoading == NO)// as it is called multiple times so wait untill last call 
{ 
CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.height"] floatValue]; 
} 

} 

Ecco come calcolare l'altezza della vista Web.

si può avere uno sguardo qui come WKWebView non hanno una eliminazione che può essere utilizzato per ottenere la dimensione del contenuto invece utilizzare KVO:

KVO example Può essere che vi aiuterà di più!

+0

Sto usando WKWebView. Non ha scalesPageToFit property – Luda

+0

Ma dire che sto cambiando la mia implementazione in UIWebView, ci sono ancora dei casi in cui webViewDidFinishLoad non viene chiamato anche se il contenuto sta cambiando sullo schermo – Luda

+0

webViewDidFinishLoad ?? sei sicuro di aver impostato il delegato – Alok

2

Cosa halped mi era di avere piccola altezza WKWebView iniziale

webView = WKWebView(frame: CGRectMake(0, 0, self.view.frame.width, 150), configuration: configuration) 

invece di

webView = WKWebView(frame: CGRectMake(0, 0, self.view.frame.width, self.view.frame.height), configuration: configuration) 
Problemi correlati