Я хочу запрограммировать приложение для управления контейнером. который вы можете использовать для размещения нового или существующего контейнера в обозначенных областях в 2D-пространстве.
Новые контейнеры втягиваются снизу. Существующие контейнеры должны перемещаться только после длительного нажатия на них.
Мне удалось заставить контейнер двигаться и распознать длинное нажатие, но я понятия не имею, как сделать так, чтобы он переместился в droparea и при необходимости повернул контейнер в том же направлении, если это необходимо.
Я уже пробовал:
UIDrop / DragInteractions, которые работают, но ограничивают меня в случае анимации и дальнейших жестов.
Hit-Detection через прикосновения начал и тому подобное.
PanGestureRecognizer для перемещения и обнаружения.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var exContainer: UIView!
@IBOutlet var spots: [UIView]!
var panGesture = UIPanGestureRecognizer()
var longpressGesture = UILongPressGestureRecognizer()
override func viewDidLoad() {
super.viewDidLoad()
panGesture = UIPanGestureRecognizer.init(target: self, action: #selector(conMoved))
longpressGesture = UILongPressGestureRecognizer.init(target: self, action: #selector(conSelected))
exContainer.addGestureRecognizer(panGesture)
exContainer.addGestureRecognizer(longpressGesture)
}
@objc func conMoved() {
exContainer.center = panGesture.location(in: self.view)
}
@objc func conSelected() {
print("long")
}
}
https://www.youtube.com/watch?v=ulB49kAIK1o
Это видео показывает мое ожидаемое поведение. И наконец, мой вопрос:
Какой самый эффективный способ реализовать этот проект.