iPad UIViewController лучшие практики для сложных интерфейсов - PullRequest
3 голосов
/ 20 декабря 2011

Я хотел бы разработать приложение для iPad, используя макет, подобный показанному по этой ссылке:

https://skitch.com/sparkoletto/g13ck/ipad-views-layout

Как вы можете видеть на изображении на одной странице, я хотел бы вставить UITableView (B), два UIScrollView (один вертикальный (D) и один горизонтальный (A)) и простой UIView (C).

Как лучше всего разработать такие интерфейсы?

Лучше всего использовать один ViewController, который управляет всеми нужными мне представлениями, или создать ViewController для каждого представления, а затем объединить их все вместе в другом UIViewController?

Спасибо

Ответы [ 2 ]

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

Я не согласен с @TomSwift.Когда эти вещи усложняются, очень полезно разбить их на свои собственные контроллеры представления.В какой-то момент вы создадите контроллер представления правильного типа, а затем [self.view addSubview:vc.view].

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

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

Разбиение слишком маленького размера, конечно, также является проблемой.Наличие отдельных контроллеров представления стоит, особенно если они взаимодействуют друг с другом.Хорошее чувство, когда подходящее время, является отличительной чертой опытного разработчика.Но за то, что вы показали, я почти наверняка разобью его.Ваша ситуация очень похожа на UISplitViewController.

0 голосов
/ 20 декабря 2011

Скорее всего, один контроллер представления, IMO, если вы не планируете повторно использовать некоторые из этих панелей в других местах.В этом случае вы можете реализовать «контроллер представления контейнера» с одним представлением для обработки макета контроллеров дочернего представления.

Обычно контроллеры представления управляют «полноэкранными» (или почти полноэкранными) представлениями.Исключения довольно редки - UISplitViewController равен единице.

...