使用导航控制器推送后,UIScrollView滚动无法正常工作

时间:2014-04-03 08:28:35

标签: ios objective-c uiscrollview uinavigationcontroller contentsize

我有一个奇怪的问题。我在视图层次结构的一部分中有一个UIScrollView。当视图通过UITabBarController呈现时,它工作正常,但在使用Navigation控制器推送后它根本不起作用(它是在根上推送的第三个vc)。滚动视图是在storyboard中创建的,以下行位于viewDidAppear方法中:

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

任何想法或建议?如果您需要滚动视图属性的检查,请告诉我。这是调用方法。错误可能在这里的某个地方。

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

谢谢, 丘吉尔

2 个答案:

答案 0 :(得分:2)

如果您在viewDidLayoutSubview函数中调整滚动视图内容大小,它将再次起作用。

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


here same question

答案 1 :(得分:1)

我已经解决了这个问题,但忘记发布了......

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

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

或者您也可以使用它:

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