UIScrollView
呼び出されたcontainerScrollViewを含むメインView Controllerがあります。このスクロールビューには、各ページに、2 つのビュー コントローラを含む画面サイズの別のスクロールビューがあります:MessagesViewController
とInfoViewController
. これがスキーマです。
containerScrollView の personScrollView は正常に動作しますが、2 つのビュー コントローラのビューを personScrollView に追加するときに問題が発生します。
@property (nonatomic, retain) MessagesViewController *matchesVC;
@property (nonatomic, retain) InfoViewController *standingsVC;
for (int i = 0; i < 3; i++) {
UIScrollView *personScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(i*320, 0, 320, self.containerScrollView.frame.size.height)];
NSArray *colors = @[[UIColor blueColor], [UIColor orangeColor], [UIColor greenColor]];
[personScrollView setBackgroundColor:[y objectAtIndex:i]];
[personScrollView setPagingEnabled:YES];
[personScrollView setContentSize:CGSizeMake(self.view.frame.size.width * 2, personScrollView)];
[self.containerScrollView addSubview:personScrollView];
/* Populate the scrollview */
// Messages
if (self.messagesVC == nil)
{
self.messagesVC = [[MessagesViewController alloc] init];
[self.messagesVC setFrame:CGRectMake(0, 0, 320, self.containerScrollView.frame.size.height)];
}
[personScrollView addSubview:self.messagesVC.view];
// Info
if (self.infoVC == nil)
{
self.infoVC = [[InfoViewController alloc] init];
[self.infoVC setFrame:CGRectMake(320, 0, 320, self.containerScrollView.frame.size.height)];
}
[personScrollView addSubview:self.infoVC.view];
}
[self.containerScrollView setContentSize:CGSizeMake(320*3, self.containerScrollView.frame.size.height)];
問題は、2 つのビュー コントローラー (メッセージと情報) が一度だけ追加され、containerScrollView の最後の personScrollView に追加されることです。
ビュー コントローラをすべての personScrollViews に追加するにはどうすればよいですか? プロパティの宣言に何か問題がありますか?
このビューコントローラーの悪用について読んだことがありますが、これが唯一の解決策です。2 つのビュー コントローラーには本当に多くのコードがあり、それを rootviewcontroller に追加できません。