2017-07-18 58 views
0

我有webViewscrollView(scrollView> mainView> webView和view2包含其他組件)。爲了只有一個滾動(scrollView之一),我計算webView完成加載時的高度,然後設置mainView的高度(其高度等於webView + view2高度)。我的應用程序支持縱向和橫向模式。要檢查當旋轉改變了我的使用方法:iOS的webView裏面scrollView:改變高度取決於設備的方向

- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 

在這個函數中我打電話,以重置我webView(設置html內容)的內容的另一個一體,使

(void)webViewDidFinishLoad:(UIWebView *)webView. 

能回顧:

- (void)webViewDidFinishLoad:(UIWebView *)webView { 

    //set the main view height 
    [self.loader stopAnimating]; 
    CGSize contentSize = webView.scrollView.contentSize; 
    float scrollHeight = contentSize.height + 270; 
    NSLog(@"webViewDidFinishLoad scrollHeight %f", scrollHeight); 
    self.mainViewHeight.constant = scrollHeight; 

} 

我的問題:當應用程序是先在portrait模式下,scrollView高度是正確的,並且完美。之後,我將旋轉更改爲landscape模式,高度也正確,但是當我將設備返回到portrait時,即使將高度設置爲webViewDidFinishLoadscrollView也會保持landscape模式的高度。當我把一個斷點self.mainViewHeight.constant = scrollHeight;我發現,當我從風景到人像模式

+0

檢查支持的設備取向的contentSize高度不改變,也許你不支持例如顛倒,但旋轉到它,並等待 – gaRik

+0

@gaRik,但我沒有與其他屏幕(在同一設備上的相同應用程序)這個問題 –

回答

0
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 
    // change the frame for both portrait and landscape 
    // check the orientation 
    if(toInterfaceOrientation == UIDeviceOrientationPortrait){ 
    webView.frame = self.view.frame; 
    }else { 
    // 
    } 
} 
+0

我試過這個,但我得到同樣的問題 –

+0

<元name ='viewport'content ='width = device-width,initial-scale = 1.0,maximum-scale = 1.0'>將此內容添加到html內容 – Balasubramanian

+0

的頭部即使我的問題是高度而不是寬度? –