Existe-t-il un moyen de vérifier si a CGPoint
est à l'intérieur d'un fichier spécifique CGRect
.
Un exemple serait: je fais glisser un UIImageView
et je veux vérifier si son point central CGPoint
est à l'intérieur d'un autreUIImageView
Existe-t-il un moyen de vérifier si a CGPoint
est à l'intérieur d'un fichier spécifique CGRect
.
Un exemple serait: je fais glisser un UIImageView
et je veux vérifier si son point central CGPoint
est à l'intérieur d'un autreUIImageView
let view = ...
let point = ...
view.bounds.contains(point)
Utilisez CGRectContainsPoint()
:
bool CGRectContainsPoint(CGRect rect, CGPoint point);
Paramètres
rect
Le rectangle à examiner.point
Le point à examiner. Valeur renvoyée true si le rectangle n'est pas nul ou vide et que le point est situé dans le rectangle; sinon, faux.Un point est considéré à l'intérieur du rectangle si ses coordonnées se trouvent à l'intérieur du rectangle ou sur le bord X minimum ou Y minimum.
Dans Swift, cela ressemblerait à ceci:
Version Swift 3:
Lien vers la documentation . N'oubliez pas de vérifier le confinement si les deux sont dans le même système de coordonnées sinon des conversions sont nécessaires ( quelques exemples )
la source
Le point d'UIViewInside: withEvent: pourrait être une bonne solution. Renvoie une valeur booléenne indiquant si le CGPoint donné se trouve ou non dans l'instance UIView que vous utilisez. Exemple:
la source
En rapide, vous pouvez le faire comme ceci:
"frame" est un CGRect et "point" est un CGPoint
la source
Dans l'objectif c, vous pouvez utiliser CGRectContainsPoint (yourview.frame, touchpoint)
Dans Swift 3, yourview.frame.contains (point de contact)
la source
C'est tellement simple, vous pouvez utiliser la méthode suivante pour faire ce genre de travail: -
Dans votre cas, vous pouvez passer imagView.center comme point et un autre imagView.frame comme rect dans la méthode about.
Vous pouvez également utiliser cette méthode dans la méthode UITouch ci-dessous :
la source
la source
Je commence à apprendre à coder avec Swift et j'essayais de résoudre cela aussi, c'est ce que j'ai trouvé sur le terrain de jeu de Swift:
Il imprime à l' intérieur
la source