前提・実現したいこと
Xamarin.Formsを使ってiOS/Andoroidアプリケーションを作っています。
あらかじめ入力されたhtml・cssなどによって整形されたコードを読み込んで、
WebViewで内容を表示するという仕組みを作ったのですが、
内容に応じて高さをアジャストさせる方法が見つからない・思いつきません。
※WebViewに意図した内容が来ているかどうかについては、HeightRequestに適当な整数を与えることで表示領域を作り、確認済です。
発生している問題・エラーメッセージ
前述の通りです。
該当のソースコード
下記のようになっており、WebViewの中身が変化します。
この中身に応じて、高さを適切に調節する方法を考えています。
var Contents = new Xamarin.Forms.HtmlWebViewSource { Html = 〜データベースから取得したテキスト(html・css)〜, }; WebView1.Source = Contents;
試したこと
・Xamarin.Formsのカスタムレンダラーを用いてなんとかできないか考えました。
・(iOSネイティブは未経験なので)Swift3について調べ、カスタムレンダラーで作成するWebviewを使い、
OnElementChangedのタイミングで(もとい、これ以外のタイミングを使う方法がわかりませんでした)
iOSであれば
・UIKit.UIViewContentMode.ScaleAspectFit を入れてはどうか?
→結果:変化なし
・サイズを取得して再描画してなんとかできないか?
var WebviewWidth = UIKit.UIScreen.MainScreen.Bounds.Width;
var WebviewHeight = UIKit.UIScreen.MainScreen.Bounds.Height;
var DrawRectParameter = new CoreGraphics.CGRect(0, 0, WebviewWidth, WebviewHeight);
base.Draw(DrawRectParameter);
→結果:変化なし
・SizeToFitメソッドなら?
base.SizeToFit();
this.SizeToFit();
→結果:変化なし
・ScalesPageToFitプロパティをtrueにすれば?
this.ScalesPageToFit = true;
→結果:HeightRequestで指定した高さに合わせる形で内容をフィットさせる(縮小・拡大する。ViewPortのような感じです。)
補足情報(FW/ツールのバージョンなど)
・macOS sierra Ver10.12.6
・Visual Studio Community Edition 2017
・Xamarin Forms Ver2.3.4.270
以上です。何かご存知のことがあれば、教えていただければと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/04 02:26
2018/06/05 04:25
2018/06/05 08:10