Структурирование представлений приложений iPhone / iPad - PullRequest
4 голосов
/ 02 мая 2010

У меня есть идея о приложении, которое я хочу создать, и я новичок в разработке для iPhone / iPad (но не новичок в разработке на других языках / платформах, таких как .NET и Java). Я хочу расположить некоторые виды на экране так, чтобы они анимировались (скользили) с разных сторон на свои места.

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

Должен ли я создать пользовательское представление для представлений контактов разного размера (например, LargeCustomView и SmallCustomView и любой другой специальный тип, который я создаю) или все это должен быть один тип, скажем, CustomerDetailsView, который можно растянуть для соответствия дизайну время

Кроме того, если на одном экране было, скажем, 3 разных экземпляра одного и того же настраиваемого представления, есть ли еще 3 экземпляра контроллера представления? Я немного озадачен передачей данных за представление, может кто-нибудь пролить свет на это для меня? Должен ли я просто установить свойства (скажем, переменную экземпляра ContactForView) на контроллере представления для каждого экземпляра?

Спасибо за любую помощь, которую вы можете оказать

Приветствия

Mark

1 Ответ

1 голос
/ 02 мая 2010

Должен ли я создать пользовательское представление для представлений контактов разного размера (например, LargeCustomView и SmallCustomView и любой другой специальный тип, который я создаю) или все это должен быть один тип, скажем, CustomerDetailsView, который можно растянуть для соответствия дизайну время

Я думаю, что только вы можете ответить на этот вопрос. Если масок авторазмера UIView достаточно для размещения обоих макетов, вам, вероятно, следует выбрать только один класс. Если этого недостаточно, вы можете либо переопределить layoutSubviews для учета разных размеров, либо, возможно, использовать общий суперкласс, содержащий логику и два подкласса, чтобы выполнять разные макеты.

Кроме того, если на одном экране было, скажем, 3 разных экземпляра одного и того же настраиваемого представления, есть ли еще 3 экземпляра контроллера представления?

Из-за того, как работают UIViewControllers, Apple обычно рекомендует не иметь более одного контроллера представления на экран. Из документов:

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

В противном случае такие вещи, как вращение устройства, могут оказаться сложными, поскольку контроллер представления, который не является полноэкранным, вероятно, должен по-разному реагировать на такие события, и UIViewController от Apple не написан для этого. Однако никто не мешает вам писать свои собственные контроллеры представления (производные от NSObject, а не от UIViewController), поэтому я бы порекомендовал: если представление довольно сложное, напишите для него собственный класс контроллера, но придерживайтесь одного UIViewController за экран.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...