Jak mogę wykryć kolizję na patelni z UIDynamicItem
?Dynamiczne zachowanie UIKit z załącznikiem bez zachowania kolizji?
Tło: Generuję 20 etykiet losowo z zestawu kolorów/ciągów (ta część nie jest istotna dla pytania), a następnie dodaje je do głównego widoku z losową pozycją środkową. Stamtąd, dodaję UIDynamicBehavior
s, co następuje:
1) UIDynamicItemBehavior
zatrzymać etykiety obracaniu 2) UISnapBehavior
przystawki etykiet do centrum widoku (Chcę ruch grawitacji jak, ale znowu, to nie jest to pytanie) 3) UICollisionBehavior
dla wszystkich etykiet, gdzie collisionMode
jest .Items
.
To działa w "początkowej" konfiguracji ... wszystkie etykiety pojawiają się w przypadkowych miejscach, a następnie szybko przyciągają się w środku, z właściwym wykrywaniem kolizji. Moje pytanie brzmi jednak: jak mogę przesunąć etykietę (poprzez gest pan), aby wykrywanie kolizji było kontynuowane?
Mam ustawienia UIPanGestureRecognizer
na każdej z etykiet, a kiedy zaczną przeciągać, utworzę UIAttachmentBehavior
i używam tego do przesuwania ich podczas przeciągania. To "działa" w tym sensie, że etykieta się porusza, ale po prostu ślizga się po wszystkich innych etykietach bez wykrycia kolizji. Jak mogę osiągnąć to wykrywanie kolizji, tak, że kiedy zaczynam przeciągać jedną etykietę w kierunku innych, one znikają z drogi tylko na tyle, by nie zachodziły na siebie (a potem te przyciągają się do swoich pozycji w oparciu o punkt środkowej grawitacji) ? Czy muszę dołączyć UIAttachmentBehavior
do wszystkich innych etykiet do tej, którą przeciągam dla każdej z patelni?
Utworzyłem projekt testowy dla emisji ja licowa, prezentuje to, co właśnie opisano:
Dzięki!