Множественное динамическое перетаскивание полигонов

Я хочу поместить несколько динамически нарисованных многоугольников в UIView и сделать каждый из таких многоугольников перетаскиваемым. Должен ли я помещать каждый динамически нарисованный многоугольник в подвид и добавлять его в UIView (что кажется невозможным, поскольку один UIView может отображать только один подвид) или я должен рисовать каждый многоугольник в другом CALayer и каскадировать событие касания на каждый слой?


person alfred    schedule 02.08.2011    source источник


Ответы (2)


Я думаю, что ваши предположения неверны. UIView, безусловно, может содержать и отображать несколько подпредставлений. (Вот почему subviews — это NSArray — потому что их может быть много.) Так что да, вы должны создать новый UIView для каждого полигона и добавить их в качестве subviews к вашему основному представлению.

Как нарисовать несколько перетаскиваемых полигонов? Если вы зарегистрированы в качестве разработчика iOS, вы можете перейти к ресурсам Apple для разработчиков и просмотреть видео с сессий WWDC2011. В WWDC2001, Session 118, «Максимальное использование Multi-Touch на IOS», Кен Косиенда демонстрирует приложение, которое делает это, используя распознаватели жестов для восприятия прикосновений. Я не думаю, что код приложения доступен, но он подробно его обсуждает.

person algal    schedule 19.08.2011

Это зависит от вашего количества полигонов и от того, насколько они динамичны. Если у вас их большое количество, сотни UIView обойдутся дорого; в этом случае вам лучше использовать CALayers и отслеживать позиции вручную. Если у вас всего несколько полигонов, не усложняйте себе жизнь и выбирайте UIViews.

person KPM    schedule 14.02.2012