2015-09-09 3 views
0

У меня есть три UIView, которые охватывают ширину экрана, и каждый занимает треть экрана по вертикали. Центр UIView содержит форму, которую пользователь заполняет. У меня есть несколько форм, которые мне нужно отключить от центра UIView. Прямо сейчас в раскадровке у меня есть каждый UIViews, расположенный между верхним и нижним UIViews, и я скрываю представления в зависимости от выбора пользователя. Есть ли лучший способ сделать это? Может быть, есть только один просмотр центра и изменение содержимого через XIB? Благодарю.iOS Изменение содержимого UIView во время выполнения

ответ

0

Если ваши формы достаточно малы, этот подход, вероятно, прекрасен. Достаточно небольшим, я имею в виду, что у них не так много (в идеале любой) бизнес-логики/валидации и т. Д. Внутри них.

Однако, если ваши формы имеют проверку и другие вещи, которые на самом деле не принадлежат к слою представления, вы можете встроить ViewController для каждой формы для обработки логики?

Я бы посмотрел на использование UIPageViewController, чтобы содержать их, и встроить segue в свой раскадровки. Io включить контроллер страницы в свою раскадровку.

Это довольно много работы, поэтому стоит подумать о том, стоит ли этого усилия. Преимущества - модульность и тестируемость - у вас не будет одного контроллера вида с все ваш код в :) Вы также можете воспользоваться оптимизацией памяти, которую UIPageViewController сделает для вас. И он будет обрабатывать переходы между формами, хотя я не знаю, будут ли они переходы, которые вы хотите :)

Недостатком является архитектурная сложность.

+0

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

+0

А, простите, я думал, что только один будет виден, и вы переключаетесь между ними. Вы правы, UIPageViewController вам совсем не поможет! В этом случае вы все равно можете использовать UIViewController для каждой формы и просто добавлять представления вручную вручную в режим прокрутки с помощью 'paging = YES'? – deanWombourne

+0

Хотел бы я пойти по этому маршруту. Было бы проще. Благодарю. –

Смежные вопросы