iOS5 への下位互換性のため、ストーリーボードのカスタム ビュー機能を使用できません。
水平スクロール メニューの上にあるビュー コントローラーがあります。スクロール ビューはいくつかのボタンで構成されており、それぞれがさまざまな方法でさまざまなコンテンツを表示するため、コンテンツごとに子ビュー コントローラーを表示する必要があります。
この画像は、私がやろうとしていることをよりよく説明しています。
Apple の開発者ガイドに従って、コンテンツ ビュー コントローラーをメイン ビュー コントローラーの子として追加しようとしました。子View Controllerが表示されるとすぐに、ボタンメニューを含むスクロールビューがスクロールを停止しました。私はこの問題に行き詰まりましたが、その理由がわかりません。
コードは次のとおりです。
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でそれを達成しようとしましたが、うまくいくので、何が間違っているのかわかりません。
どんな助けでも本当に感謝しています 乾杯