Как спроектировать подпредставления для UIScrollView при использовании раскадровок для iOS5? - PullRequest
11 голосов
/ 20 ноября 2011

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

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

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

Спасибо

Тим

Ответы [ 3 ]

6 голосов
/ 07 декабря 2011

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

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

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

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

4 голосов
/ 04 декабря 2011

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

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

2 голосов
/ 26 ноября 2011

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

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

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