#iphone #controller #scrollview
#iPhone #контроллер #scrollview
Вопрос:
У меня есть два UIViewControllers, каждый со своими собственными файлами nib. Каждый контроллер служит для разных целей. Идея заключалась в том, чтобы добавить UIScrollController и добавить к нему оба UIViewControllers, чтобы пользователь мог легко прокручивать между ними обоими.
Q1) Возможно ли это вообще? Или я неправильно понял всю цель UIScollControllers, если да, то какова лучшая альтернатива.
Я покопался в Интернете, и лучшее, что я могу придумать, это:
ScoreViewController *scoreController = [[ScoreViewController alloc] initWithNibName:@"ScoreViewController" bundle:nil];
scoreController.view.frame = CGRectMake(0.0f, 0.0f, 960f, 640f);
[self.scrollview addSubview:scoreController.view];
[scoreController release];
SettingsViewController *settingsController = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil];
settingsController.view.frame = CGRectMake(0.0f, 0.0f, 960f, 640f);
[self.scrollview addSubview:settingsController.view];
[settingsController release];
Этот код вводится внутри моего класса RootViewController. Похоже, это не работает, поскольку я не могу прокручивать между двумя добавленными мной UIViewControllers (оценка и настройки). Все, что отображается на экране, — это второй добавленный контроллер — SettingsViewController.
Q2) Почему это не работает?
Спасибо. 🙂
Комментарии:
1. Если вы получите ответ, который решит вашу проблему, вы можете выразить свою признательность, приняв его .
2. Спасибо — я пробовал прошлой ночью, но не знал, как это сделать 🙂
Ответ №1:
На самом деле вы правильно размещаете первый контроллер, затем вы помещаете второй над ним.
settingsController.view.frame = CGRectMake(0.0f, 0.0f, 960f, 640f);
- 960×640 — это неправильный способ ввода координат (фактический размер 320×480) двойной размер используется только для файлов изображений
- 0.0f, 0.0f означает x: 0, y: 0, поэтому во втором контроллере вам нужно x: 320, y: 0
затем вам нужно установить contentSize для ScrollView
scrollview.contentSize = CGSizeMake(320*2, 480);
Затем включите подкачку ScrollView;
scrollview.pagingEnabled = YES;
И это должно сработать 🙂