¿Hay una manera de comprobar si un CGPoint
está dentro de un determinado CGRect
. En ejemplo: estoy arrastrando un UIImageView
y quiero verificar si su punto central es CGPoint
dentro de otro UIImageView
qué puedo hacer?IOS: verificar si un punto está dentro de un rect
Respuesta
Ver CGRectContainsPoint()
en la documentación.
bool CGRectContainsPoint(CGRect rect, CGPoint point);
Parámetros
rect
El rectángulo de examinar.point
El punto a examinar. Valor de retorno cierto si el rectángulo no es nulo o vacío y el punto se encuentra dentro del rectángulo; de lo contrario, falso.
Se considera un punto dentro del rectángulo si sus coordenadas se encuentran dentro del rectángulo o sobre el mínimo X o el mínimo del borde Y.
de UIView pointInside: withEvent: podría ser una buena solución. Devolverá un valor booleano que indica si el CGPoint dado está en la instancia de UIView que está utilizando. Ejemplo:
UIView *aView = [UIView alloc]initWithFrame:CGRectMake(0,0,100,100);
CGPoint aPoint = CGPointMake(5,5);
BOOL isPointInsideView = [aView pointInside:aPoint withEvent:nil];
es tan simple, puede utilizar siguiente método para hacer este tipo de trabajo: -
-(BOOL)isPoint:(CGPoint)point insideOfRect:(CGRect)rect
{
if (CGRectContainsPoint(rect,point))
return YES;// inside
else
return NO;// outside
}
En su caso, puede pasar imagView.center como apuntar y hacer otra imagView.frame como rect en el método.
También puede utilizar este método en abajo UITouch Método:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
}
En Swift que se vería así:
let point = CGPointMake(20,20)
let someFrame = CGRectMake(10,10,100,100)
let isPointInFrame = CGRectContainsPoint(someFrame, point)
Swift 3 Versión:
let point = CGPointMake(20,20)
let someFrame = CGRectMake(10,10,100,100)
let isPointInFrame = someFrame.contains(point)
Link to documentation. Por favor, recuerde que debe comprobar la contención si ambos están en el mismo sistema de coordenadas si no, las conversiones se requieren (some example)
Gracias muy claro –
en Swift puede hacerlo de esta manera:
let isPointInFrame = frame.contains(point)
"marco" es un CGRect y " punto" es un CGPoint
En Objective C puede utilizar CGRectContainsPoint (yourview.frame, punto de contacto)
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
UITouch* touch = [touches anyObject];
CGPoint touchpoint = [touch locationInView:self.view];
if(CGRectContainsPoint(yourview.frame, touchpoint)) {
}else{
}}
En swift 3 yourview.frame.contiene (punto de contacto)
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch:UITouch = touches.first!
let touchpoint:CGPoint = touch.location(in: self.view)
if wheel.frame.contains(touchpoint) {
}else{
}
}
- 1. ¿Identifica si un punto está dentro de un polígono?
- 2. iOS - ¿Cómo verificar si una NSOperation está en un NSOperationQueue?
- 3. geometría 2D: cómo verificar si un punto se encuentra dentro de un ángulo
- 4. ¿Cómo verificar si un punto (x, y) está dentro de un polígono en el sistema de coordenadas cartesianas?
- 5. ¿Cómo encontrar si un punto está dentro de un conjunto de intervalos?
- 6. Cómo verificar si un DataGridViewCheckBoxCell está marcado
- 7. Cómo comprobar si un NSPoint está dentro de un NSRect
- 8. Comprobar si un punto está en un rectángulo girado (C#)
- 9. ¿Cómo verificar si un objeto está definido?
- 10. Compruebe si el punto está dentro de un cono en el espacio 3D
- 11. iOS Cómo verificar si actualmente está llamando por teléfono
- 12. iOS - Cómo verificar si una vista modal está presente
- 13. ¿Cómo puedo verificar si un punto está debajo de una línea o no?
- 14. iOS - eliminación de bordes alrededor de un botón Round Rect
- 15. SVG: texto dentro de rect
- 16. Cómo verificar/encontrar si un artículo está en un DEQUE
- 17. alternativa para verificar, si un valor está en un conjunto
- 18. ¿Cómo verificar si un proceso se está ejecutando con Delphi?
- 19. ¿Cómo verificar si una fecha está en un rango determinado?
- 20. Encontrar si un círculo está dentro de otro círculo
- 21. Magento: ¿Cómo verificar si el administrador está conectado dentro de un controlador de módulo?
- 22. Cómo determinar si una anotación está dentro de MKPolygonView (iOS)
- 23. Cómo comprobar si algún punto (o parte) de una línea está dentro o toca un rectángulo
- 24. Buscar si un punto está dentro de un casco convexo para un conjunto de puntos sin calcular el casco
- 25. Cómo verificar si un valor de matriz profunda está presente
- 26. ¿Cómo verificar si un elemento de almacenamiento está configurado?
- 27. Verificar si datepicker está abierto
- 28. Android: ¿Cómo comprobar si una ruta contiene un punto tocado?
- 29. Comprobando un segmento de línea está dentro de una distancia desde un punto
- 30. Algoritmo para proyectar luz y detectar si un punto dado cae dentro de él?
El eslabón perdido;) https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CGGeometry/Reference/reference.html – ezekielDFM
me ahorrar tiempo. Gracias – HamasN
Gracias una tonelada ... –