弹出视图控制器后,UIScrollView不会在iOS 7上滚动

时间:2013-11-13 19:41:29

标签: uiwebview uiscrollview ios7

我的应用程序的主屏幕有一个UIScrollView,其中包含一个UIWebView和一个UIButton。加载Web视图后,滚动视图的内容大小会相应设置。

只需按下标签栏中的图标,用户就可以随时返回主屏幕。此操作会清除导航控制器中的所有视图控制器,并将主屏幕的控制器添加到导航控制器。主屏幕重新正确显示,滚动视图工作正常。

我遇到的问题是用户按下“后退”按钮返回主屏幕,弹出当前视图控制器。该页面重新显示正常,但您无法再滚动。

我已多次遍历代码,无论您返回主屏幕的方式,滚动视图的内容大小都设置为相同的值。

重要的是要注意,scrollview仅在iOS 7下停止工作。它在iOS 6下按预期工作。

网页加载在viewWillAppear:

-(void)viewWillAppear:(BOOL)animated
{
    NSString *fullURL = @"http://somewhere.com/app-homepage/index.html";
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [self.webView loadRequest:requestObj];

    [self.scrollView setContentOffset:CGPointZero];

}

滚动视图在webViewDidFinishLoad中动态调整大小:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    webView.scrollView.scrollEnabled = NO;

    CGRect frame = webView.frame;

    frame.size.height = 1;

    webView.frame = frame;

    CGSize fittingSize = [webView sizeThatFits:CGSizeZero];

    frame.size = fittingSize;

    self.webViewHeightConstraint.constant = frame.size.height;

    self.featuredCelebritiesButtonTopVerticalSpaceConstraint.constant = frame.size.height + 8;

    CGSize svContentSize = self.scrollView.contentSize;

    svContentSize.height = frame.size.height + 65;

    self.scrollView.contentSize = svContentSize;

    webView.frame = frame;

    [self.activity stopAnimating];
}

0 个答案:

没有答案