【问题标题】:iOS5 content view controller blocks scroll view on custom container view controlleriOS5 内容视图控制器阻止自定义容器视图控制器上的滚动视图
【发布时间】:2013-02-19 13:10:31
【问题描述】:

为了向后兼容 iOS5,我无法使用故事板的自定义视图功能。

我有一个视图控制器,顶部有一个水平滚动菜单。滚动视图由几个按钮组成,每个按钮以不同的方式显示不同的内容,因此我希望每个内容都显示一个子视图控制器。

这张图片更好地解释了我正在尝试做的事情。

按照 Apple 的开发人员指南,我尝试将内容视图控制器添加为主视图控制器的子级。一旦子视图控制器出现,带有按钮菜单的滚动视图就会停止滚动。我被这个问题卡住了,我不知道为什么。

代码如下:

MainViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.


    self.menuScrollView.frame = CGRectMake(0, kScrollViewMarginTop, self.view.frame.size.width, kScrollViewHeight);
    self.menuScrollView.showsHorizontalScrollIndicator = NO;
    self.menuScrollView.pagingEnabled = YES;


    self.firstMenuButton.selected = YES;
}

- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];

    self.menuScrollView.contentSize = CGSizeMake(kScrollViewContentWidth, kScrollViewHeight);
}

- (IBAction)menuButtonTapped:(id)sender{

    UIButton *button = (UIButton *)sender;

    switch (button.tag) {
        case 0:
            if (![self.firstMenuButton isSelected]) {
                self.firstMenuButton.selected = YES;
                [self.firstMenuButton setBackgroundImage:[UIImage imageNamed:@"firstMenuButton_selected.png"] forState:UIControlStateSelected];
                [self deselectButtonsExceptButtonWithTag:button.tag];

                //Shows the first content
                UIViewController *contentViewController = (UITableViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"firstControllerStoryboardID"];
                [self displayContentViewController:contentViewController];
            }
            break;

      default:
            break;
    }   
}

- (void)displayContentViewController:(UIViewController *)viewController{


    [self addChildViewController:viewController];

    viewController.view.frame = CGRectMake(0, self.menuScrollView.frame.origin.y + self.menuScrollView.frame.size.height + 5.0, 320.0, 200.0);

    [self.view addSubview:viewController.view];
    [viewController didMoveToParentViewController:self];
}

我尝试在 iOS6 中通过情节提要实现它并且它有效,所以我不知道我做错了什么。

非常感谢任何帮助 干杯

【问题讨论】:

  • 我看不出你的代码有什么问题。内容控制器的视图是否看起来像应有的那样,您可以正常与之交互吗?
  • 是的,内容视图控制器是一个表格视图控制器,我可以正常与之交互。不知道为什么添加内容视图控制器子项后无法滚动菜单

标签: iphone ios uiscrollview parent-child ioc-container


【解决方案1】:

我修复了从情节提要中禁用自动布局选项的问题

【讨论】:

    猜你喜欢
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多