Question

Je reçois des images parmi lesquelles l'utilisateur doit en choisir une. Maintenant, je ne veux pas simplement offrir une zone de défilement plat avec une grille ennuyeuse. Au lieu de cela, je voudrais montrer une roue qui contient ces images. Au sommet serait un marqueur indiquant la sélection. Quelque chose de semblable aux Pickers.

Le problème n’est pas le problème de la rotation; J'utiliserais des fonctions géométriques pour cela. Mais je ne sais pas comment obtenir les gestes de défilement sur cette roue. Où dois-je commencer?

BTW: Par circulaire, je ne veux pas dire quelque chose comme les Pickers. Je veux dire une vraie roue qui a un axe central et qui peut être roulée. Comme les très vieux téléphones, comme une roue de vélo. Ou un sélecteur tourné de 90 & # 176 ;, face à vous avec l'axe (coordonnée Z).

Était-ce utile?

La solution

Si vous parlez de gestes de capture, voici l'exemple qu'ils donnent dans la documentation .

Bien que j'aurais pu jurer, j'ai entendu Alan Cannistraro dire dans l'un des premiers Les conférences CS193P ne vous obligent pas à faire cela, vous pouvez simplement intercepter l'événement de balayage, mais je ne le trouve pas.

Est-ce que quelqu'un qui sait vraiment ce qu'il est en train de faire pourrait me corriger et je supprimerai ce message, mais pour l'instant je sais que cela fonctionnera:

#define HORIZ_SWIPE_DRAG_MIN  12
#define VERT_SWIPE_DRAG_MAX    4

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    startTouchPosition = [touch locationInView:self];
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint currentTouchPosition = [touch locationInView:self];

    // If the swipe tracks correctly.
    if (fabsf(startTouchPosition.x - currentTouchPosition.x) >= HORIZ_SWIPE_DRAG_MIN &&
        fabsf(startTouchPosition.y - currentTouchPosition.y) <= VERT_SWIPE_DRAG_MAX)
    {
        // It appears to be a swipe.
        if (startTouchPosition.x < currentTouchPosition.x)
            [self myProcessRightSwipe:touches withEvent:event];
        else
            [self myProcessLeftSwipe:touches withEvent:event];
    }
    else
    {
        // Process a non-swipe event.
    }
}

Autres conseils

À quel point ressemble-t-il à une vue de sélecteur? Vous pouvez charger une vue de sélecteur avec vos propres sous-vues personnalisées, qui peuvent être des vues d'image. Cela vous donnerait une vue réelle du sélecteur avec vos images, ce qui pourrait être ou ne pas être ce que vous visiez réellement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top