Bin ich auf dem richtigen Weg, einen Gegenstand von einem UIScrollView zu ziehen und ihn über einen zweiten UIScrollView fallen zu lassen? Keines der UIScrollViews wird am Ende verändert, aber ich würde gerne ein Bild folgen, das der touchMoved-Position folgt, bis es über das zweite UIScrollView freigegeben wird.einen Gegenstand aus einem Scrollview ziehen
Ich habe die UIScrollView erweitert, damit ich sehen kann, wo eine Berührung in der UIScrollView beginnt.
extension UIScrollView {
override open func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.next?.touchesBegan(touches, with: event)
print("touchesBegan")
}
}
das berührte Objekt
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
beginningLocation = touch.location(in: self.view)
let position = touch.location(in: itemScrollview)
print("itemScrollview: \(position)")
let whoHit = Int(position.x/120)
print("whoHit: \(whoHit) \(GameData.items[whoHit].name)")
}
}
Ich versuche zu bekommen touchesEnded zu verwenden, um zu sehen, ob der Benutzer nach oben gezogen, aber touchesEnded bekommt nicht immer genannt. Funktioniert, wenn die Berührungen über dieselbe UIScrollView beginnen und enden, aber touchEnd nicht abgerufen wird, wenn sie gezogen wird.
Scheint, als ob eine Berührung in der UIScrollView entsteht, die Hauptansicht erhält keine Ereignisse. Gibt es eine Möglichkeit, Ereignisse der Hauptansichtsberührung gleichzeitig mit den Scrollview-Registrierungstreffern zu erhalten? – Mark
Es ist ein wenig kompliziert, aber es gibt einige gute Beispiele. Hier ist eine "vorgefertigte" Option: [link] (https://github.com/Oblong/OBDragDrop), oder schauen Sie sich diesen Artikel (und den dazugehörigen Quellcode) an: [link] (http: // www.informit.com/articles/article.aspx?p=2185202&seqNum=13). Beide sind Objective-C, aber ziemlich einfach in Swift zu konvertieren. – DonMag
Danke, dass du mich in die richtige Richtung gelenkt hast. – Mark