public HtmlElement(string cellKey) { Key = new NSString(cellKey); WebView = new UIWebView(); WebView.ScrollView.ScrollEnabled = false; WebView.ScalesPageToFit = true; WebView.ScrollView.Bounces = false; WebView.ShouldStartLoad = (w, r, n) => ShouldStartLoad(r, n); WebView.LoadFinished += (sender, e) => { _height = WebView.SizeThatFits(CGSize.Empty).Height; if (HeightChanged != null) { HeightChanged(_height); } }; HeightChanged = (x) => { var root = this.GetRootElement(); if (root != null) { root.Reload(this); } }; }
public static UIImage GetImageFromWebPage(UIWebView webPage, LoadingView lv) { var oldFrame = webPage.Frame; try { lv.Show(); var frame = webPage.Frame; var fittingSize = webPage.SizeThatFits(new SizeF()); frame.Size = fittingSize; webPage.Frame = frame; UIGraphics.BeginImageContext(new SizeF(webPage.Bounds.Width, webPage.Bounds.Height)); webPage.Layer.RenderInContext(UIGraphics.GetCurrentContext()); var viewImage = UIGraphics.GetImageFromCurrentImageContext(); UIGraphics.EndImageContext(); return(viewImage); } finally { webPage.Frame = oldFrame; lv.Hide(); } }
public static void AdjustHeightAccordingToContent(this UIWebView webView) { var contentHeight = webView.ScrollView.ContentSize.Height; var webViewHeight = webView.Frame.Height; CGSize mWebViewTextSize = webView.SizeThatFits(new CGSize(1.0f, 1.0f)); CGRect mWebViewFrame = webView.Frame; mWebViewFrame = new CGRect(webView.Frame.X, webView.Frame.Y, webView.Frame.Width, mWebViewTextSize.Height); webView.Frame = mWebViewFrame; //Disable bouncing in webview foreach (var subview in webView.Subviews) { if (subview.GetType() == typeof(UIScrollView)) { ((UIScrollView)subview).Bounces = false; } } }