Pergunta

Tentei encontrar uma solução fácil para o seguinte. Eu tenho uma visão principal que contém um ladrilho. Eu quero arrastar e soltá -lo sobre uma View Uitable. Eu poderia programar a escolha e o arrasto já com o UigestureCognizer.

Agora, meu problema é como posso detectar na visualização da tabela que há um item que será arrastado acima dele. Por exemplo, quero destacar a linha fornecida quando o ladrilho for movido acima dele.

Tentei adicionar os eventos TouchesMoved/iniciados/terminados à Viewcell. Eles não recebem incêndios quando estou arrastando o ladrilho sobre ele (em outras palavras, o ladrilho está escondendo uma parte da viewell sob meu dedo). Eles são demitidos quando não há ladrilhos arrastados acima.

Existe um método mais eficaz para isso?

Obrigado.

Foi útil?

Solução

Há um monte de problemas de interface do usuário aqui que devem ser abordados.

  • Em geral, arrastar e soltar no iPhone é uma má idéia. É muito difícil de fazer, e obter feedback será problemático, porque seu dedo estará obstruindo a operação de arrasto
  • Usar a célula selecionada da tabela para indicar 'desbotabilidade' pode fazer com que você seja rejeitado pelos revisores da App Store; É para indicar "Eu selecionei esta célula", não "eu vou soltar algo nele"

Dito isto, você provavelmente vai querer gerenciar todos os seus eventos de toque na visão 'fonte' e enviar as mensagens da tabela a partir daí, em vez de tentar conciliar mensagens. Depois que o seu -TouchesBegan: WitherEvent: foi chamado em uma visão, todos os subsequentes -TouchesMoved: WitherEvent: e -Touchesended: WitherEvent: serão enviados para essa visão para o ciclo de vida desse toque; Encaminhá -los confundirá o diabos de todos os envolvidos.

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