2016-08-08 36 views
0

Ich bin nicht daran gewöhnt, mit nativem iOS-Code zu arbeiten. Entschuldigung, dass ich hier etwas übersehen habe.iOS: keine Berührungen erhaltenAbbrechen beim Abrufen eines nativen Popup-Fensters

Das Problem, das ich gerade habe, ist, wenn ein Benutzer eine Berührung niederhält, und dann vor dem Loslassen ein natives Popup erscheint (Batterie schwach, Timer, ...), wird kein Anruf ausgelöst BerührungenAbbrechen. Stattdessen wird eine Berührung ausgelöst, wenn der Benutzer den Bildschirm nicht mehr berührt.

Allerdings war dies eine Reaktion des Benutzers auf das Popup, nicht eine aktive Entscheidung für die Verwendung der App, und dies könnte zu inkorrektem und frustrierendem Verhalten führen.

Soweit ich das beurteilen kann, sollte die touchesCancelled ausgelöst werden, wenn der Fokus verloren geht, aber es scheint, dass Fokus in diesem Fall nicht vollständig verloren ist.

Ich frage mich, ob es eine andere Möglichkeit gibt zu erkennen, dass ein natives Popup geöffnet wurde, und meine App wie toysCancelled ausgelöst hat, und unbeabsichtigtes Verhalten zu vermeiden.

Ich habe einige Apps von Apple getestet und sie haben das gleiche (meiner Meinung nach) falsche Verhalten. Vielleicht muss ich damit leben, aber ich möchte erfahrene iOS-Entwickler erreichen und bin mir dessen sicher.

Danke, Sascha

Antwort

0

kehrte ich heute zu diesem Thema zurück. Ich fand heraus, dass wenn ein natives Popup angezeigt wird, ein Aufruf in die App an applicationWillResignActive bzw. applicationDidBecomeActive erfolgt.

In meiner Lösung, im Moment, wo applicationWillResignActive aufgerufen wird, mache ich die App im Grunde so, als ob es für jede Berührung einen touchesCancelled gegeben hätte, der ohne Ende oder Abbrechen begonnen hätte. Wenn der tatsächliche touchesEnded aufgerufen wird, wird er ignoriert, da er nicht mehr mit einem touchesBegan in meiner App übereinstimmt.

Es fühlt sich ein wenig an, als würde man springen, aber das hört sich für mich gut an.