Gibt es eine Möglichkeit zu überprüfen , ob ein CGPoint
in einem bestimmten ist CGRect
.
Ein Beispiel wäre: Ich ziehe ein UIImageView
und möchte überprüfen, ob sein Mittelpunkt CGPoint
in einem anderen liegtUIImageView
let view = ...
let point = ...
view.bounds.contains(point)
Verwendung CGRectContainsPoint()
:
bool CGRectContainsPoint(CGRect rect, CGPoint point);
Parameter
rect
Das zu untersuchende Rechteck.point
Der zu untersuchende Punkt. Rückgabewert true, wenn das Rechteck nicht null oder leer ist und sich der Punkt innerhalb des Rechtecks befindet. sonst falsch.Ein Punkt wird innerhalb des Rechtecks betrachtet, wenn seine Koordinaten innerhalb des Rechtecks oder an der minimalen X- oder minimalen Y-Kante liegen.
In Swift würde das so aussehen:
Swift 3 Version:
Link zur Dokumentation . Bitte denken Sie daran, die Eindämmung zu überprüfen, wenn sich beide im selben Koordinatensystem befinden. Andernfalls sind Konvertierungen erforderlich ( Beispiel ).
quelle
UIViews pointInside: withEvent: könnte eine gute Lösung sein. Gibt einen booleschen Wert zurück, der angibt, ob sich der angegebene CGPoint in der von Ihnen verwendeten UIView-Instanz befindet oder nicht. Beispiel:
quelle
In Kürze können Sie es so machen:
"frame" ist ein CGRect und "point" ist ein CGPoint
quelle
In Ziel c können Sie CGRectContainsPoint (yourview.frame, touchpoint) verwenden.
In Swift 3 enthält yourview.frame.contains (Berührungspunkt)
quelle
Es ist so einfach, dass Sie die folgende Methode verwenden können, um diese Art von Arbeit zu erledigen: -
In Ihrem Fall können Sie imagView.center als Punkt und einen anderen imagView.frame als rect in about-Methode übergeben.
Sie können diese Methode auch in der folgenden UITouch- Methode verwenden:
quelle
Ich fange an zu lernen, wie man mit Swift programmiert und habe auch versucht, dies zu lösen. Das habe ich mir auf Swifts Spielplatz ausgedacht:
Es wird innen gedruckt
quelle
quelle