UIStackView - Ziehen, um angeordnete Unteransichten neu anzuordnen?

Ich versuche, Ratschläge zu erhalten, wie Sie dasselbe Verhalten wie bei einem @ "Drag to Reorder" implementieren könneUITableView aber auf einemUIStackView.

So weit das ist, was ich denke:

Fügen Sie jedem @ eine lange Druckgestenerkennung hinzarrangedSubviewsDrücken Sie lange, und fügen Sie eine Überlagerung hinzuUIView als Unteransicht zur Hauptansicht und das füllt die gesamte Hauptansicht. Diese Überlagerungsansicht fungiert als eine Art "Zeichenfläche", wenn ich die temporäre "Neuordnungs" -Ansicht ziehe - wir nennen dies dastempView- um (mehr dazu in 4)Stellen Sie das @ ealpha desarrangedSubview bis 0 (Einstellunghidden = true würde das @ ergebUIStackView Animation schließen in, als ob es entfernt wurde.Füge hinzu eintempView zur Overlay-Ansicht (siehe 3) mit demselben Anfangsrahmen wie dasarrangedSubviewZieh dentempView hoch oder runter und das aktuelle @ einfügen / entfernarrangedSubview bei einem berechneten Index basierend auf der Position destempView.Hören Sie, wann die lange Taste @ gedrückt wirstate ist.Ended und setze dasarrangedSubview.alpha = 1 und entfernen Sie die Überlagerungsansicht aus der Hauptansicht.

Irgendwelche Vorschläge? Irgendwelche grellen Löcher, die jemand sieht? Was würdest du ändern? In welche Richtung würden Sie gehen, um dies zu erreichen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage