Как спроектировать subviews для UIScrollView при использовании раскадровки для iOS5?

Я использую пример из этого вопроса: Как объединить UIScrollview с UIPagecontrol для отображения разных представлений?, чтобы добавить UIScrollView, содержащий несколько подзонов, на страницу в мое приложение для iPad.

Мое приложение имеет один большой вид сверху, а затем маленький ящик внизу. Внизу внизу находится UIScrollView; пользователь будет прокручивать влево и вправо, чтобы вызывать ящики для различных функций в этой небольшой секции. Большой вид сверху никогда не изменяется, поэтому я не думаю, что segues уместны.

У меня есть раскадровка с одной сценой View Controller. Хотя я могу добавить в него взгляды, я не могу создавать "заставки"; другими словами, я нигде не могу рисовать каждое из моих подзонов. Как я могу это сделать? Нужно ли создавать отдельные XIB для каждого подзаголовка? Если да, как мне их загрузить? Или, должен ли я увеличить ширину прокрутки (subview width * subview count) и нарисовать каждый вид рядом с предыдущим? Это мое первое приложение для iOS, поэтому у меня могут быть некоторые вещи назад.

Спасибо

Тим

Ответ 1

В настоящее время раскадровки не идеальны для этого, но вы не должны использовать отдельные файлы nib. Вместо этого вы должны использовать другие viewControllers и настраивать каждое из своих представлений по мере необходимости. Вы должны помнить, чтобы установить идентификатор контроллера вида в построителе интерфейса, а затем вы можете загрузить представление так,

UIStoryboard * раскадровка = [UIStoryboard раскадровкаWithName: @ "MainStoryboard" bundle: nil];       UIViewController * myViewController = [storyboard instantiateViewControllerWithIdentifier: @ "MyViewControllerIdentifierInIB" ];

Теперь у вас есть контроллер вида, вы можете получить доступ к представлению и добавить его, где бы вы ни хотели.

Примечание. Чтобы изменить размер вашего представления, вам нужно будет выбрать контроллер представления и изменить его размер в инспекторе атрибутов в конструкторе интерфейса для произвольной формы. Затем вы сможете изменить размер представления.

Ответ 2

Я также обнаружил, что, но в конечном итоге вы теряете цель раскадровки, которая должна представить вам полный поток вашего графического приложения.

То, что мне действительно не хватает, - это новый объект cocoa, то есть UIPagedScrollController, который при добавлении в раскадровку будет иметь собственный переход segue, подобный UIToolBarController и UINavigationController, но будет состоять из UIPageControl и UIScrollView, необходимых для создания магии.

Ответ 3

В конце концов я обнаружил, что я могу создать subviews в отдельных NIB. В подвижных NIB я устанавливаю идентификатор File Owner на мой основной класс контроллера класса и добавляю выход к контроллеру представления для subview. Затем я связываю подвью в NIB с этим выходом в File Owner.

Наконец, в главном контроллере представления viewDidLoad я вызываю это для каждого подматрица NIB:

[[NSBundle mainBundle] loadNibNamed:@"MySubView" owner:self options:nil];