Pergunta

Eu estou tendo algumas imagens a partir do qual o usuário deve escolher um. Agora eu não quero apenas oferecer uma área de rolagem plano com uma grade chato. Em vez disso, eu gostaria de mostrar-se uma roda que contém essas imagens. Na parte superior seria um marcador indicando a selecção. Algo semelhante ao dos Catadores.

O problema não é o material de rotação; Eu usaria algumas funções geométricas para isso. Mas eu não tenho nenhuma idéia de como realmente obter os gestos do desdobramento em que roda. Onde devo começar?

BTW: Com circular eu não fazer algo dizer, como os catadores. Quero dizer uma roda real que tem um eixo central e pode ser enrolado. Como os muito velhos telefones, como uma roda de bicicleta. Ou um Picker virou em 90 °, de frente com o eixo para você (coordenada Z).

Foi útil?

Solução

Se você está falando sobre a captura de gestos, então aqui é o exemplo que eles dão nos docs .

Embora eu poderia jurar que ouvi Alan Cannistraro dizer em um dos primeiros CS193P palestras que você não tem que fazer isso, que você pode simplesmente interceptar o evento de furto, mas não consigo encontrar isso.

Poderia alguém que realmente sabe o que eles estão fazendo por favor me corrijam e eu vou remover esse post, mas por agora eu sei que isso vai funcionar:

#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.
    }
}

Outras dicas

Apenas como semelhante a uma vista selecionador você está pensando? Você pode carregar até uma visão picker com suas próprias subviews personalizados, que podem ser vistas de imagem. Que iria conseguir uma visão real picker com suas imagens, que pode ou não ser o que você está realmente buscando.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top