我在webView
内有scrollView
(scrollView> mainView> webView和包含其他组件的view2)。为了只有一个滚动(scrollView一个)我在完成加载时计算webView的高度然后我设置mainView的高度(它的高度等于webView + view2高度)。我的应用程序支持纵向和横向模式。要检查旋转何时发生变化,请使用:
- (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
时,scrollView
保持{{1}的高度即使我在landscape
中设置了高度,也可以使用模式。当我在webViewDidFinishLoad
中设置断点时,我发现当我从风景模式进入肖像模式时,self.mainViewHeight.constant = scrollHeight;
高度不会改变
答案 0 :(得分: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 {
//
}
}