Donc, fondamentalement, j'essaie de faire défiler UIScrollView uniquement sur des angles plus élevés. Comme en ce moment, si vous déplacez votre doigt de 10 degrés horizontalement, la scrollview défilera. J'aimerais pousser ça jusqu'à, disons, 30 degrés. Après avoir fait quelques lectures, j'ai établi la meilleure façon de le faire serait de mettre un UIView sous-classé sur le scrollview. Si le UIView sur les touches supérieures est au-dessus de 30 degrés, passez-le au scrollview, et autrement ne le faites pas.Passage programmé de touches à UIScrollView pour faire défiler
Cependant, je ne peux pas comprendre comment passer les touches. Voici mon code en ce moment:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"glass touch began");
UITouch *touch = [touches anyObject];
beginning_touch_point = [touch locationInView:nil];
[scroll_view touchesBegan:touches withEvent:event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"glass touch ended");
UITouch *touch = [touches anyObject];
CGPoint previous_point = beginning_touch_point;
CGPoint current_point = [touch locationInView:nil];
float x_change = fabs(previous_point.x - current_point.x);
float y_change = fabs(previous_point.y - current_point.y);
if(x_change > y_change)
{
if(previous_point.x - current_point.x < 0)
{
[(MyScheduleViewController *)schedule_controller didFlickLeft];
}
else
{
[(MyScheduleViewController *)schedule_controller didFlickRight];
}
[scroll_view touchesCancelled:touches withEvent:event];
}
else
{
[scroll_view touchesEnded:touches withEvent:event];
}
}
Je sais en ce moment qu'il est la vérification de 45 degrés, mais ce n'est pas la chose importante. Ce qui est important, c'est que les touches sont bien transmises à ma scroll_view. Je l'ai fait un NSLog() sur touchbegan et touchended, et il fait les deux correctement. Ce n'est pas en train de défiler. Je suis inquiet toucheBegan et toucheEnded ne peut pas provoquer un parchemin. Est-ce que quelqu'un sait ce que peut, ou ce que je fais mal ??
Merci
Avez-vous déjà réussi à faire fonctionner cela? J'ai actuellement un problème similaire. –