iPhone: UITableViewCell encargo con múltiples áreas que responden a los toques?
-
19-09-2019 - |
Pregunta
Me han pedido para crear una costumbre UITableViewCell con múltiples áreas que se pueden aprovechar.
Estas áreas no tienen botones o cualquier gráfico - que van a ser invisible. 3 métodos diferentes serán llamados dependiendo de la tercera de la célula el usuario toca es decir.
|| decrementFooCount || viewFooDetails || incrementFooCount ||
La celda tiene un par de etiquetas en él que deben ser visibles en todo momento - el fooName y fooCount
.Estoy pensando tal vez tres UIButtons ocultos sobre la celda?
También es necesario mantener el golpe para eliminar el comportamiento por defecto.
Solución
Puede subclase su UITableViewCell y reemplazar el método touchesBegan:withEvent:
. A continuación, puede obtener una CGPoint de donde se colocó el tacto.
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
UITouch* touch = touches.anyObject;
CGPoint location = [touch locationInView:self];
if (CGRectContainsPoint(myTestRect, location)) {
// Touched inside myTestRect, do whatever...
} else {
// Let the default implementation take over.
[super touchesBegan:touches withEvent:event];
}
}
Andrew