Как оформить мое подпредставление "слои"? - PullRequest
0 голосов
/ 22 января 2012

Я работаю над приложением, которое позволяет пользователю играть в переодевания, добавляя в тело такие вещи, как шляпы, волосы, глаза и т. Д. Пользователь в основном перетаскивает элемент из меню, и я создаю экземпляр изображения на экране с какой-то формой «addSubview: or insertSubview:belowSubview:/aboveSubview:».

Вопрос в том, что некоторые предметы всегда должны появляться ниже других. Например, графика «глаза» (синий, коричневый, зеленый) всегда должна появляться над «глазными яблоками» (различные формы и выражения глаз). Тем не менее, я не заставляю пользователя следовать любому процессу, он может перетаскивать его по своему усмотрению, поэтому addSubview: может быть неуместным, но может быть insertSubview: underSubview: / aboveSubview: будет, в зависимости от того, как вы можете ссылаться на элемент, который вы хотите добавить ниже или выше.

В идеале я бы следовал за стеком так: Аксессуары> Прически> Брови> Глазные яблоки> Глаза ... и т. Д. У кого-нибудь есть идеи дизайна как это реализовать? Спасибо

1 Ответ

1 голос
/ 22 января 2012

Сделайте так, чтобы ваша иерархия представлений выглядела так:

self.view
├─ self.accessoriesView
│  ├─ braceletView
│  └─ toeRingView
├─ self.hairStylesView
│  ├─ blondeWigView
│  └─ hairClipView
├─ self.eyebrowsView
│  └─ archedEyebrowView
├─ self.eyeballsView
│  ├─ bloodshotEyeballView
│  └─ regularEyeballView
├─ self.eyesView
│  └─ greenEyesView
├─ etc.

Когда пользователь перетаскивает прическу из меню, добавьте новый вид прически в качестве подпредставления self.hairStylesView. Когда пользователь вытаскивает зеленые глаза из меню, добавьте новый вид глаз как подпредставление self.eyesView.

Представления, которые позже в массиве subviews, "ближе" к пользователю - они закрашивают представления ранее в массиве subviews. Поэтому, если вы создаете групповые представления в коде, вы можете просто использовать addSubview:, если добавляете их в правильном порядке. Или, если вы настроили свои представления в кончике, вы можете расположить их в правильном порядке в контуре кончика.

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