UIScrollView scroll not working after pushed with

2019-02-27 07:16发布

问题:

I'm having an odd problem. I have a UIScrollView in a part of view hierarchy. It's working just fine when the view is presented via UITabBarController, but doesn't work at all after it is pushed with a Navigation controller (it is the third vc pushed atop the root). The scroll view was created in storyboard and the following lines are in the viewDidAppear method:

[super viewDidAppear:animated];
[self.scrollView setScrollEnabled:YES];
self.scrollView.contentSize = CGSizeMake(320.0f, 468.0f);

Any ideas, or suggestions? If you need shots of scrollview attributes inspector let me know. Here's the call method. The error might be somewhere inside here.

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main_iPhone"
                                                 bundle:nil];
    MKontaktViewController *vc = [sb instantiateViewControllerWithIdentifier:@"Kontakt"];
    vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self.navigationController pushViewController:vc
                                         animated:YES];

Thanks, Churchill

回答1:

If you resize the scroll view content size in the viewDidLayoutSubview function it will work again.

- (void) viewDidLayoutSubviews {
    [self resizeScrollViewContent];
}

and
here same question



回答2:

I've solved this problem, but forgot to post it...

    - (void) viewDidLayoutSubviews 
    {
        [self resizeScrollViewContent];
    }

    - (void) resizeScrollViewContent
    {
        self.scrollView.contentSize = CGSizeMake(320.0f, 468.0f);
    }

Or you could use this as well:

    - (void) viewDidLayoutSubviews 
    {
        self.scrollView.contentSize = CGSizeMake(320.0f, 468.0f);
    }