CocoaHeadsBrasil / forum

Portando discussões feitas em grupos (Facebook, Google Groups, Slack, Disqus) pra issues
MIT License
7 stars 3 forks source link

Desabilitar momentaneamente interação com UISlider #10

Open corujautx opened 8 years ago

corujautx commented 8 years ago

Qual o problema ou dúvida?

Estou tentando executar performSegue: quando um UISlider atinge certo progresso e portanto só quero que execute uma vez. Seria possível desabilitar a interação instantaneamente de sliding?

O que você já tentou para resolver?

Já usei resignFirstResponder, já tentei colocar .enabled como true e false, já tentei iterar sobre os gestures recognizers associados, desabilitá-los e habilitá-los novamente.

Detalhes sobre seu ambiente

Swift 2.2 @ Xcode 7.3.1

barbosa commented 8 years ago

@corujautx já tentou?

slider.userInteractionEnabled = false
corujautx commented 8 years ago

@barbosa já foi tentado :\

corujautx commented 8 years ago

Opa, consegui resolver.

Fiz uma subclasse de UISlider, seto uma ivar pra determinar o estado no becomeFirstResponder e resignFirstResponder, e quando touchesMoved: é chamado, se a variável estiver como true chama touchesCancelled:

Não é a coisa mais bonita do mundo, mas funcionou.

Se alguém tiver uma idéia melhor, por favor compartilhem.