Ein- / Ausblenden der UIToolbar „Match Finger Movement“, genau wie zum Beispiel in iOS7 Safari

Hinweis: Schauen Sie sich hier Thuys großartige Unterklasse von UINavBar an:

https://stackoverflow.com/a/20720359/294884

Wenn Sie an diesem Problem arbeiten, ist GTScrollNavigationBar fast eine fertige Lösung für das navBar-Problem!

50-Punkte-Kopfgeld hier, erstaunlich, es gibt keine Antworten.

Beispiel: Öffnen Sie auf einem iPhone 2014 Safari, und laden Sie eine beliebige Webseite.

Schauen Sie sich die iOS-Symbolleiste unten an.

Bewegen Sie nun Ihren Finger auf und abNUR EIN PAAR PIXEL.

Grundsätzlich ist die Symbolleiste am unteren Rand,bewegt sich mit dem Finger. Außerdem die Symbolleiste spätererscheint / verschwindet, wenn Sie die Seite scrollen, nach spezifischer Logik.

Aber die Interaktionsregeln sindsehr kompliziertund beinhalten das Ein- und Ausschalten des Fingers während des Ausblendens, den Abstandsabgleich, Gesten, wenn Sie weiter unten auf der Seite sind, Sonderfälle für sehr kurze Seiten und so weiter.

ich willGENAU Duplizieren Sie das Apple-Verhalten.

(Es erscheint vernünftig, dass wir mit Apple UX übereinstimmen sollten.)

Gibt es eine Möglichkeit, dies zu tun? Bietet Apple dafür einen Ein-Schritt-Befehl an, von dem ich nichts weiß? Oder müssen Sie das Konzept mühsam duplizieren?

Vielen Dank.

Übrigens ist die folgende Logik zuverlässig und wirdgrob duplizieren So wie Apple es macht:

-(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
}

Übrigens können Sie natürlich verwenden

(void)setToolbarHidden:(BOOL)hidden animated:(BOOL)animated

um eine UIToolbar nach oben und unten zu schieben. ABER das hilft in keiner Weise beim "Finger Matching".

Hinweis: und hier ist zum Beispiel eine hervorragende Lösung für SO:

https://stackoverflow.com/a/21049991/294884

Sie können so programmieren, indem Sie jede einzelne Regel im Apple-Beispiel nach Ihrem Geschmack in jedem Punkt implementieren. (Was ist zu tun, wenn Sie sich in der Nähe des Bodens befinden, mit dem Finger nach oben, in welche Richtung usw. usw.) Mein Punkt ist, dass ich nur angenommen habe, dass jemand all diese Arbeiten bereits ausgeführt hatpassend zum Apple UX genau&nbsp;- heh!