2013-10-10 218 views
0

因此,我所追求的是一種將UIButton放在UIScrollViewUIWebView之上的方法。我需要這種方式的原因是,當用戶滾動我加載到UIWebView的頁面時,我需要該按鈕「滾動」。獲取UIWebView加載內容的高度

爲了這個工作,我需要獲取我加載的網頁內容的高度,然後設置網頁視圖的高度以匹配這個。如果我可以這樣做,那麼我打算設置UIScrollView的contentSize以匹配按鈕和Web視圖的高度。

據我所知,這應該發生在- (void)webViewDidStartLoad:(UIWebView *)webView方法,這是在stackoverflow上的許多線程(例如this one)確認。我也知道Apple說你不應該在UIS​​crollView中放置UiWebView,因爲滾動操作可能會受到干擾。禁用Web視圖滾動應該避免這個問題。

有很多線索討論這個問題,但他們都沒有爲我工作。這是因爲我在iOS7上運行嗎?



我在這裏大絕望,非常感謝幫助!

回答

-2

你可以加載到UIWebView內容的高度如下:

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

,然後相應地調整網絡視圖的框架。

+0

我已經嘗試過這一點。但你如何建議我改變網頁視圖框?在這個方法中?並且在這個方法中改變IOScrollView框架? ...似乎不適合我。 – OscarWyck

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; 
}