Làm cách nào để phát hiện xung đột xảy ra trên chảo của UIDynamicItem
?UIKit pan hành vi năng động với tập tin đính kèm không tiếp tục hành vi va chạm?
Bối cảnh: Tôi tạo 20 nhãn ngẫu nhiên từ bộ màu/chuỗi (phần này không cần thiết cho câu hỏi), sau đó thêm chúng vào chế độ xem chính với vị trí trung tâm ngẫu nhiên. Từ đó, tôi thêm UIDynamicBehavior
s, như sau:
1) UIDynamicItemBehavior
để ngăn chặn các nhãn từ xoay 2) UISnapBehavior
để đính nhãn để trung tâm của view (Tôi muốn có một phong trào trọng lực giống như, nhưng một lần nữa, đó không phải là câu hỏi này) 3) UICollisionBehavior
cho tất cả các nhãn nơi collisionMode
là .Items
.
Điều này hoạt động trong thiết lập "ban đầu" ... tất cả các nhãn xuất hiện tại các điểm ngẫu nhiên và sau đó nhanh chóng chụp cùng nhau ở giữa, với phát hiện va chạm thích hợp. Câu hỏi của tôi là, tuy nhiên, làm thế nào tôi có thể sau đó di chuyển một nhãn (thông qua một cử chỉ pan) để phát hiện va chạm tiếp tục?
Tôi đã thiết lập UIPanGestureRecognizer
trên mỗi nhãn và khi bắt đầu kéo, tôi tạo UIAttachmentBehavior
và sử dụng để di chuyển chúng khi tôi kéo. Điều này "hoạt động" theo nghĩa là nhãn di chuyển, nhưng nó sẽ chỉ lướt qua tất cả các nhãn khác mà không có bất kỳ phát hiện va chạm nào xảy ra. Làm thế nào tôi có thể đạt được phát hiện va chạm này, vì vậy khi tôi bắt đầu kéo một nhãn tới những người khác, chúng di chuyển ra khỏi đường đủ để không có sự chồng chéo (và sau đó chúng quay lại vị trí của chúng dựa trên điểm trọng tâm) ? Tôi có cần đính kèm một UIAttachmentBehavior
vào tất cả các nhãn khác với nhãn tôi đang kéo cho mỗi pan không?
tôi đã tạo ra một dự án thử nghiệm cho vấn đề tôi phải đối mặt, trong đó cho thấy tắt những gì tôi vừa mô tả:
Cảm ơn!