2016-04-12 3 views
0

Ich habe eine UIScrollview mit der ich hinein- und herauszoomen und schwenken kann. Allerdings möchte ich der ScrollView ein schwebendes Gefühl geben, bei dem das Bewegen des Fingers von links nach rechts den UIScrollView so schwenkt, dass er beim Start allmählich schneller wird und am Ende langsam langsamer wird.Verzögerung/Verlangsamung UIScrollView Schwenkgeschwindigkeit

Nichts übermäßig dramatisch oder desorientierend, aber um dem UIScrollView ein schönes schwereloses Gefühl zu geben. Ist das möglich und wenn ja, wie würde ich das tun?

Alle Hilfe wird geschätzt.

Antwort

1

Wie in einer anderen Antwort erwähnt, hat UIScrollView decelerationRate Eigenschaft, mit zwei vordefinierten Konstanten UIScrollViewDecelerationRateFast und UIScrollViewDecelerationRateNormal Werte.

Aber wenn Sie Verzögerungsrate verlangsamen möchten, können Sie benutzerdefinierte verwenden Gleitkommawert, so etwas wie:

scrollView.decelerationRate = 0.4; 

Versuchen Sie einfach, mit diesem Wert zu experimentieren und das finden, was Sie am besten passt.

+0

Dies funktioniert gut für die Verzögerung, danke! Ich hoffte aber auch auf eine Form der BeschleunigungRate Changer, wenn es dafür bekannte Möglichkeiten gibt. –

+0

Es gibt keine einfachen Möglichkeiten, dies zu tun. Sie können die Möglichkeit untersuchen, den standardmäßigen Pan-Gestenerkenner in UIScrollView zu ändern, und versuchen, dessen Offset zu steuern, indem Sie Gesten von diesem Erkenner empfangen. Oder fügen Sie einen anderen UIPanGestureRecognizer hinzu, um die Ansicht zu durchsuchen und stattdessen zu verwenden. Wie auch immer, es ist sehr komplex, nur die Verzögerungsrate zu ändern. –

+0

Alles klar, vielen Dank für die Hilfe mit dem ersten Punkt sowieso :) Ich akzeptiere dies als die Antwort wegen float mehr Reichweite als voreingestellte Werte wie in der Antwort unten ist. –

1

Es gibt zwei Möglichkeiten zur Verfügung,

scrollView.decelerationRate = UIScrollViewDecelerationRateFast; 
scrollView.decelerationRate = UIScrollViewDecelerationRateNormal; 

Wenn es Ihnen helfen können!