[解決済み] UIWebViewのコンテンツサイズを決定する方法は?
2022-05-13 13:52:35
質問
私は
UIWebView
を異なる (単一ページの) 内容で表示します。を見つけたいのですが
CGSize
を見つけ、親ビューのサイズを適切に変更したいのです。明らかな
-sizeThatFits:
は残念ながら、webViewの現在のフレームサイズを返すだけです。
どのように解決するのですか?
最初に推測した
-sizeThatFits:
を使用した最初の推測は完全に間違っているわけではないことがわかりました。これは動作するようですが、webViewのフレームが、送信前に最小限のサイズに設定されている場合にのみ
-sizeThatFits:
. その後で、間違ったフレームサイズをフィッティングサイズで修正すればいいのです。これはひどいように聞こえますが、実際にはそれほど悪くありません。両方のフレームの変更を互いの直後に行うので、ビューは更新されず、ちらつきもありません。
もちろん、コンテンツが読み込まれるまで待つ必要があるので、このコードを
-webViewDidFinishLoad:
デリゲートメソッドに記述します。
Obj-C
- (void)webViewDidFinishLoad:(UIWebView *)aWebView {
CGRect frame = aWebView.frame;
frame.size.height = 1;
aWebView.frame = frame;
CGSize fittingSize = [aWebView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
aWebView.frame = frame;
NSLog(@"size: %f, %f", fittingSize.width, fittingSize.height);
}
Swift 4.x
func webViewDidFinishLoad(_ webView: UIWebView) {
var frame = webView.frame
frame.size.height = 1
webView.frame = frame
let fittingSize = webView.sizeThatFits(CGSize.init(width: 0, height: 0))
frame.size = fittingSize
webView.frame = frame
}
ここで指摘しておきたいのは 別のアプローチ (@GregInYEG に感謝) があります。どちらのソリューションがより良いパフォーマンスなのかはわかりません。
2つの厄介なソリューションのうち、私はこのソリューションがより好きです。
関連
-
[解決済み】Xcode - 'NSUnknownKeyException', reason: ... this class is not key value coding-compliant for the key X" エラーの修正方法とは?
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] Xcode 7のエラーです。"Missing iOS Distribution signing identity for ..." (iOS配布用署名IDがありません)
-
[解決済み] UITextViewのサイズをコンテンツに合わせるには?
-
[解決済み] iPhone 5の画面解像度に対応したアプリを開発・移行するには?
-
[解決済み] iOSとWatchKitで画像のtintColorを変更する方法
-
[解決済み】UIScrollView Scrollable Content Size Ambiguity
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[エラー処理】iOSのエラー、アーキテクチャx86_64の未定義シンボルについて
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] UITextViewのプレースホルダー
-
[解決済み] NSの接頭辞はどういう意味ですか?
-
[解決済み] UIViewController のビューが表示されているかどうかを確認する方法
-
[解決済み] iOS 13 のフルスクリーンでモーダルを表示する
-
[解決済み] iOS Simulatorでネットワークを無効にすることは可能ですか?
-
[解決済み] UIButtonのタイトルを左揃えにするにはどうしたらよいですか?
-
[解決済み] テキストフィールドを移動する方法(次へボタン/完了ボタン)
-
[解決済み] UITableView - トップにスクロールする