Pergunta

Eu tenho uma visão célula da tabela personalizada que gestos alças usuário. No entanto, mesmo se eu tiver exclusiveTouch definida como Sim, o momento em que o valor y muda por qualquer quantidade, scolling começa, mesmo se eu estou no meio de lidar com os eventos de toque. Como faço para impedir que a tabela de rolagem quando estou lidando com eventos de toque na célula?

Foi útil?

Solução

Assim, a maneira correta de lidar com condicionalmente infelizmente depende do Superview. Para alguns vista e eventos (como UITableView escolha), você precisa encaminhar a touchesBegan: evento para nextResponder, acompanhar o seu gesto, frente touchesMoved: eventos para o nextResponder até que você detectar o seu gesto, e quando ele é acionado você envia uma touchesCancelled: ao nextResponder, e esconde todos os outros eventos da próxima responder (touchesEnded: e touchesCancelled :) até receber touchesEnded: ou touchesCancelled:. yourself

Em um UIScrollView, no entanto, há o caso especial em que não dependem de ser o nextResponder a eventos alça de deslocamento (Scrolling é mais provável detectado em métodos como hitTest :). Portanto, não importa o que você faz com relação ao envio ou a eventos ou não, a rolagem ainda acontece. A única maneira de evitar a rolagem de acontecer é desativar a rolagem na vista principal assim que o seu gesto é detectado, e em seguida, reativar rolagem quando termina ou é cancelada.

Outras dicas

Eu acho que você precisa para subclasse UITableView e implementar hitTest: withEvent: Isto é como eu fiz isso por uma célula de costume I construído para que esquerda e direita deslizante dentro da célula:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
    NSIndexPath *indexPath = [self indexPathForRowAtPoint:point];
    UITableViewCell *cell = [self cellForRowAtIndexPath:indexPath];

    if ([cell isKindOfClass:[MyCustomCell class]])
    {
        return cell;
    }

    return [super hitTest:point withEvent:event];
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top