Existe uma maneira de verificar se um CGPoint
está dentro de um específico CGRect
.
Um exemplo seria: estou arrastando um UIImageView
e quero verificar se seu ponto central CGPoint
está dentro de outroUIImageView
let view = ...
let point = ...
view.bounds.contains(point)
bool CGRectContainsPoint(CGRect rect, CGPoint point);
Parâmetros
rect
O retângulo a ser examinado.point
O ponto a ser examinado. Valor de retorno true se o retângulo não for nulo ou vazio e o ponto estiver localizado dentro do retângulo; caso contrário, false.Um ponto é considerado dentro do retângulo se suas coordenadas estiverem dentro do retângulo ou na borda mínima X ou Y mínima.
Em Swift, ficaria assim:
Versão Swift 3:
Link para a documentação . Lembre-se de verificar a contenção, se ambos estiverem no mesmo sistema de coordenadas, caso contrário, serão necessárias conversões ( alguns exemplos )
fonte
O pointInside da UIView: withEvent: pode ser uma boa solução. Retornará um valor booleano indicando se o CGPoint especificado está ou não na instância UIView que você está usando. Exemplo:
fonte
No Swift você pode fazer assim:
"frame" é um CGRect e "point" é um CGPoint
fonte
No objetivo c, você pode usar CGRectContainsPoint (yourview.frame, touchpoint)
No swift 3 yourview.frame.contains (touchpoint)
fonte
É tão simples que você pode usar o seguinte método para fazer este tipo de trabalho: -
No seu caso, você pode passar imagView.center como point e outro imagView.frame como rect no método about.
Você também pode usar este método no método UITouch abaixo :
fonte
fonte
Estou começando a aprender a codificar com Swift e estava tentando resolver isso também, foi o que descobri no playground de Swift:
Imprime dentro
fonte