En AcaniUsers
, he creado una cuadrícula de instancias ThumbView : UIView
dentro de UITableView
. Todos thumbViews
tienen un ancho de kThumbSize
. ¿Cómo puedo detectar si los toques terminaron dentro de la misma vista en la que comenzaron?UIView: Cómo comprobar si los toques terminaron dentro de la misma vista en la que comenzaron
Respuesta
Lo siguiente funciona, pero no estoy seguro de si es la mejor manera de hacerlo. Aunque creo que sí.
Dado que todos thumbViews
tener una anchura de kThumbSize
, sólo comprobar en touchesEnded
que la coordenada x de la locationInView
de la (self.multipleTouchEnabled = NO
suponiendo) UITouch
ejemplo es menor que o igual a kThumbSize
. Esto significa que los toques terminaron dentro del thumbView
. No es necesario verificar la coordenada y porque si los toques se mueven verticalmente, el tableView
, que contiene el thumbViews
, se desplaza y los toques se cancelan.
hacer lo siguiente ThumbView : UIView
(cuyas instancias son subvistas de un UITableView
):
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"touchesEnded %@", touches);
CGPoint touchPoint = [[touches anyObject] /* only one */ locationInView:self];
if (touchPoint.x >= 0.0f && touchPoint.x <= kThumbSize) {
[(ThumbsTableViewCell *)self.superview.superview thumbTouched:self];
}
}
Para único registro toques en una thumbView
a la vez, también, probablemente, desea establecer self.exclusiveTouch = YES;
en el método init
instancia de ThumbView
.
- 1. UIView, cómo determinar cuándo toques entró en la vista
- 2. Toques comenzaron en UITableViewController
- 3. iOS - Detectando toques en una UIView?
- 4. iOS: ¿Transferir la propiedad de UIView mientras ocurren los toques?
- 5. iOS: reenviar todos los toques a través de una vista
- 6. ¿Cómo obtener una UIView debajo de UIScrollView para detectar toques?
- 7. ¿Cómo puedo comprobar si la vista de desplazamiento está rebotando?
- 8. ¿Cómo verificar si terminaron todas las AsyncTasks?
- 9. Desactivar la recepción de toques desde la vista principal en la subvista
- 10. Cómo robar toques de UIScrollView?
- 11. determine si el punto en la pantalla se encuentra dentro de la subvista UIScrollView específica
- 12. Cómo evitar HttpRequestValidationException en ASP.NET MVC que representa la misma vista que causó la excepción
- 13. Objective-C: compruebe si la vista toca otra vista
- 14. Cómo evitar que los usuarios trabajen en la misma fila
- 15. Comprobar si el elemento especificado es la selección dentro
- 16. Dos UITableView en la misma vista
- 17. PHP: Cómo comprobar si la cadena de consulta o los valores POST contienen la misma var dos veces
- 18. incruste la vista de cámara en vivo dentro de un UIView
- 19. Determinar cuándo terminaron todos los hilos C#
- 20. ¿Cómo mostrar toques de globos de estilo Vista en Delphi?
- 21. UIGestureRecognizer que bloquea la vista de tabla que se desplaza
- 22. Cómo detectar toques en la barra de estado
- 23. toques de Desactivar el fondo UIView modo que los botones de vistas inferiores se puede hacer clic
- 24. Fieldsets con tablas dentro. ¿Cómo ponerlos en la misma línea?
- 25. Si elimina un elemento DOM, ¿los eventos que comenzaron con ese elemento continúan burbujeando?
- 26. ¿Cómo comprobar si el sistema operativo es Vista en Python?
- 27. TSQL para encontrar si los inicios de sesión tienen la misma contraseña que loginname?
- 28. ¿La opción addSubview de UIView realmente conserva la vista?
- 29. iPhone UIView toquesMoved: withEvent: no se invoca en UIView con reconocedores de gestos
- 30. ¿Cómo comprobar si un micrófono y un altavoz provienen de la misma tarjeta de sonido?
Puede escribir mejor código haciendo esto: 'if (CGRectContainsPoint (self.bounds, touchPoint)) {...}'. :) – BastiBen