0

だから私が求めているのは、a のUIButton上にa を置き、UIScrollViewそのUIWebView下に a を置く方法です。このようにしたい理由は、UIWebView にロードしたページをユーザーがスクロールするときに、ボタンを「スクロールする」必要があるためです。

これを機能させるには、ロードした Web ページのコンテンツの高さを取得し、これに一致するように Web ビューの高さを設定する必要があります。これが可能であれば、UIScrollView の contentSize をボタンと Web ビューの高さに合わせて設定するつもりです。

どういうわけか、これはメソッドで発生するはずであることを理解しています 。これは- (void)webViewDidStartLoad:(UIWebView *)webView、stackoverflow の多くのスレッドで確認されています (たとえば、 this one )。また、スクロール アクションが干渉する可能性があるため、Apple が UiWebView を UIScrollView に配置すべきではないと言っていることも知っています。ただし、Web ビューのスクロールを無効にすると、問題を回避できます。

この問題について議論しているスレッドはたくさんありますが、どれも私にはうまくいかないようです。私がiOS7で実行しているからでしょうか?



私はここで大きな絶望に陥っています。助けていただければ幸いです。

4

2 に答える 2

3

次のコードを使用して高さを取得できます。

NSString *heightStrig = [webView stringByEvaluatingJavaScriptFromString:@"(document.height !== undefined) ? document.height : document.body.offsetHeight;"];
float height = heightStrig.floatValue;

完全なコード:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    CGRect frame = webView.frame;
    NSString *heightStrig = [webView stringByEvaluatingJavaScriptFromString:@"(document.height !== undefined) ? document.height : document.body.offsetHeight;"];
    float height = heightStrig.floatValue + 10.0;
    frame.size.height = height;
    webView.frame = frame;
}
于 2015-07-22T08:22:59.573 に答える
0

UIWebView次のように、ロードされたコンテンツの高さを取得できます。

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    CGFloat contentHeight = webView.scrollView.contentSize.height;
}

それに応じて Web ビューのフレームを調整します。

于 2013-10-10T13:55:27.770 に答える