Mostrar / ocultar a barra de ferramentas do UITool, “corresponder ao movimento dos dedos”, exatamente como por exemplo no iOS7 Safari
https://stackoverflow.com/a/20720359/294884
Se você está trabalhando nesse problema, o GTScrollNavigationBar está perto de uma solução pronta para o problema navBar!
Recompensa de 50 pontos aqui, incrível, não há respostas.
Por exemplo: em um iPhone de 2014, abra o Safari, carregue qualquer página da web.
Veja a barra de ferramentas do iOS na parte inferior.
Agora mova seu dedo para cima e para baixoAPENAS ALGUNS PIXELS.
Basicamente, a barra de ferramentas na parte inferior,se move com o dedo. Além disso, a barra de ferramentas posteriormenteaparece / desaparece à medida que você rola a página, seguindo lógica específica.
Mas as regras de interação sãomuito complicado, e envolva ligar / desligar o dedo durante a ocultação, correspondência de distância, gestos quando você estiver mais abaixo na página, casos especiais para páginas muito curtas e assim por diante.
eu queroEXATAMENTE duplicar o comportamento da Apple.
(Parece sensato que devemos corresponder ao Apple UX.)
Existe uma maneira de fazer isso? a Apple oferece um comando de uma etapa para isso, que eu não conheço? Ou você tem que duplicar laboriosamente o conceito?
Obrigado.
A propósito, a seguinte lógica é confiável e seráaproximadamente duplicado da maneira que a Apple faz:
-(void)feedIsScrolled:(CGFloat)scrollNewOverallYPosition
{
// call this routine when scrollViewDidScroll:
self.feedIsScrolledDelta =
scrollNewOverallYPosition - self.feedIsScrolledPrevious;
self.feedIsScrolledPrevious =
scrollNewOverallYPosition;
// nb, you do those only in this routine, NOT the following routine.
if ( scrollNewOverallYPosition < 15.0 )
{
.. animate in the bar
return;
}
if ( self.feedIsScrolledDelta > 0.0 )
.. animate away the bar
}
-(void)feedIsThrown:(CGFloat)scrollNewOverallYPosition
{
// call this routine when scrollViewDidEndDragging:
// BUT ONLY when willDecelerate: is true
if ( self.feedIsScrolledDelta <= 0.0 )
.. animate in the bar
else
.. animate away the bar
}
A propósito, é claro que você pode usar
(void)setToolbarHidden:(BOOL)hidden animated:(BOOL)animated
para deslizar uma barra do UITool para cima e para baixo. MAS isso não ajuda em nada com a "correspondência de dedos".
Nota: e aqui, por exemplo, há uma excelente solução vista no SO:
https://stackoverflow.com/a/21049991/294884
Você pode programar assim, implementando todas as regras no exemplo da Apple, para se adequar ao seu gosto em cada ponto. (O que fazer quando você está perto do fundo, com o dedo para cima, em qual direção, etc.) Meu argumento é que presumi que alguém já deve ter feito todo esse trabalho.combinando exatamente com o Apple UX - heh!