caracteristicas - iphone store
iPhone: haga clic en ver detrĂ¡s de UIScrollView transparente (2)
Tengo un UIScrollView que está configurado para tener un fondo claro. Parte de la vista de desplazamiento tiene contenido, pero no parte (por lo que muestra otras vistas detrás). Me gustaría poder hacer clic en UIScrollView y en MKMapView, pero solo para la parte transparente de UIScrollView.
He encontrado un código que me cuesta mucho entender cómo ponerme en funcionamiento:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (![self yourMethodThatDeterminesInterestingTouches:touches withEvent:event])
[self.nextResponder touchesBegan:touches withEvent:event];
}
¿Podría alguien ayudarme a pensar cómo reenviar un evento táctil a una vista que está detrás de otra vista? ¿Puedo invocar - (void) touchesBegan: (NSSet *) toques con Evento: (UIEvent *) evento desde un UIViewController?
Básicamente, depende de usted determinar qué eventos táctiles desea reenviar a otro respondedor. Si simplemente desea reenviar todos los eventos táctiles, simplemente elimine esa declaración if
en el código que publicó para que el siguiente respondedor reciba todos los eventos táctiles.
Lo que hicimos fue subclasificar UIScrollView e implementar la lógica que transfiere la responsabilidad a las vistas debajo de ella, si el toque ocurre dentro del área transparente .
En nuestro caso, el área transparente está definida por contentOffset de 120 en el eje Y, lo que significa que nuestro contenido comienza 120 puntos por debajo del inicio de UIScrollView, y el código se ve así:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
if (self.contentOffset.y < 0 && point.y < 0.0) {
return NO;
} else {
return YES;
}
}
Obviamente, esta respuesta ya pasó su mejor momento, pero es de esperar que sea útil para cualquiera que busque una solución.