Как обнаружить столкновение на катере UIDynamicItem
?Пакет динамического поведения UIKit с приложением, не поддерживающим поведение при столкновении?
Фон: Я генерирую 20 меток случайным образом из набора цветов/строк (эта часть не является существенной для вопроса), а затем добавляет их к главному виду со случайным центральным положением. Оттуда, я добавляю UIDynamicBehavior
с, следующим образом:
1) UIDynamicItemBehavior
, чтобы остановить этикетки от вращающегося 2) UISnapBehavior
привязать метки к центру зрения (я хочу гравитационное как движение, но опять же, это не этот вопрос) 3) UICollisionBehavior
для всех этикеток, где collisionMode
- .Items
.
Это работает в «начальной» настройке ... все ярлыки появляются в случайных точках, а затем быстро объединяются в центре с надлежащим обнаружением столкновения. Однако мой вопрос заключается в том, как я могу перемещать ярлык (посредством жесты панорамы), чтобы обнаружение конфликтов продолжалось?
У меня есть установка UIPanGestureRecognizer
на каждой из меток, и когда они начинают перетаскивание, я создаю UIAttachmentBehavior
и использую это, чтобы переместить их при перетаскивании. Это «работает» в том смысле, что ярлык перемещается, но он просто скользит по всем другим ярлыкам без какого-либо обнаружения столкновения. Как я могу добиться этого обнаружения столкновений, так что, когда я начинаю перетаскивать одну метку по отношению к другим, они уходят с пути, достаточного для того, чтобы там не было перекрытия (а затем они привязывались к своим позициям на основе точки центра тяжести) ? Нужно ли прикреплять UIAttachmentBehavior
ко всем другим ярлыкам к тому, которое я перетаскиваю для каждого кастрюли?
Я создал тестовый проект по этому вопросу я облицовочная, показывает, что я только что описал:
Спасибо!