iphone - UIButton estático ontop UIScrollview?
touches (5)
Mueva toda la Vista de desplazamiento hacia abajo por la altura de su Botón y reduzca su altura en la misma cantidad. A continuación, coloque el botón sobre la vista de desplazamiento, por lo que no es un elemento secundario de la vista de desplazamiento.
Quiero lograr un efecto bastante simple. Un scrollView y un botón estático encima de él. Hasta ahora no hay problema. Lamentablemente, se produce un problema si quiero desplazar la vista "a través" del botón. Así que comenzar a arrastrar dentro del botón afectará al botón, no a la vista de desplazamiento.
¿Alguna idea sobre cómo lograr eso?
¡Muchas gracias!
Creo que este enfoque no funcionará porque touchesBegan está en desuso en UIScrollView ... (¿Es verdadera esta información?)
No es la solución :-)
@implementation MySuperButton
+ (id)buttonWithFrame:(CGRect)frame {
return [[[self alloc] initWithFrame:frame] autorelease];
}
- (id)initWithFrame:(CGRect)frame {
if (self == [super initWithFrame:frame]) {
NSLog(@"initWithFrame");
}
return self;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
[self.nextResponder touchesBegan:touches withEvent:event];
NSLog(@"[self nextResponder]: %@", [self nextResponder]);
}
@end
Desgraciadamente esto no funciona, todavía. Creo que el siguiente respondedor es mi UIView no mi UIScrollView. ¿Algunas ideas?
Si mi viewcontroller, que es el nextResponder, pasa los toques a scrollView, tampoco pasa nada.
Agregue el botón no a la vista de desplazamiento, sino a su vista principal, y todo debería funcionar bien. Toca el botón directamente se entregará al botón, y toca en el fondo (vista de desplazamiento) se entregará a la vista de desplazamiento.
Como el botón no es una subvista de la vista de desplazamiento, no se moverá con el fondo (lo que supongo que quiere decir con estática ).
Nunca jugué mucho con los eventos táctiles y demás, pero de todos modos intentaré ayudar con mi comprensión básica.
Intenta configurar el toque exclusivo del botón en NO. No estoy seguro, pero tal vez habilitarMultitouch a SÍ también.
Si eso no funciona, trataría de subclasificar UIButton, anulando los eventos táctiles y pasándolos a [self nextResponder] antes / después de [super touchEventX:]?
Es un poco difícil de entender lo que estás tratando de lograr. ¿Quieres desplazarte por el botón o no?
Así que comenzar a arrastrar dentro del botón afectará al botón, no a la vista de desplazamiento.
No está claro si ese es el comportamiento que desea o el comportamiento que está tratando de cambiar.
Si es la respuesta de Eiko anterior, es correcta y si es la última, debe agregar el botón como una subvista de la vista de desplazamiento y actualizar su marco cada vez que se scrollViewDidScroll:
Nunca lo intenté, pero funciona en teoría.
Si agrega un botón simple en una vista, entonces si toca el botón. llamará Acción de eso.
Mismo camino
Si agrega un botón simple en un ScroolView, entonces, si toca el botón. llamará Acción de eso.
Y si toca el área vacía de scroolview, entonces se llaman los métodos de delegado de UIScrollView.
Si coloca el dedo en el botón y lo arrastra, obviamente lo afectará en la vista de desplazamiento. scrollview arrastrará el 100%