UIScrollView scroll not working after pushed with

2019-02-27 07:20发布

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

2条回答
我想做一个坏孩纸
2楼-- · 2019-02-27 07:44

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

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

and
here same question

查看更多
对你真心纯属浪费
3楼-- · 2019-02-27 07:57

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);
    }
查看更多
登录 后发表回答