So überprüfen Sie, ob eine UIView ihre Superview-Grenzen überschreitet

8

Ich habe eine Ansicht mit einer Schwenkgeste und einem UIPushBehavior daran angeschlossen und wollte wissen, ob es möglich ist, zu überprüfen, wenn die Sicht aus den Grenzen der Superviews heraus ist. Im Grunde wirft der Benutzer die Ansicht und ich möchte etwas Animation ausführen, wenn die Ansicht außerhalb des Bildschirms ist. Konnte nicht herausfinden, wie das geht. Danke.

    
mlevi 09.12.2014, 17:44
quelle

3 Antworten

8

Wenn Sie überprüfen möchten, ob es sich vollständig außerhalb der Superview-Grenzen befindet, können Sie dies tun

%Vor%

Wenn Sie überprüfen möchten, ob nur ein Teil davon außerhalb der Grenzen liegt, können Sie dies tun

%Vor%     
Stephen Johnson 09.12.2014, 17:51
quelle
1

In Swift 3:

%Vor%     
Philipp 27.02.2017 13:24
quelle
1

Leider ist Philipps Antwort auf eine teilweise außerhalb der Grenzen liegende Überprüfung in dieser Zeile nicht ganz korrekt: v1.bounds.intersection(v2.frame).width > 0) && (v1.bounds.intersection(v2.frame).height > 0

Die Schnittmengengröße kann größer als Null sein und die Ansicht würde immer noch innerhalb der Superview-Grenzen liegen.

Es stellte sich auch heraus, dass ich equal(to: CGRect) wegen CGFloat-Genauigkeit nicht sicher verwenden kann.

Hier ist die korrigierte Version:

%Vor%     
filletofish 11.01.2018 14:48
quelle

Tags und Links