2011-08-09 8 views
16

Mam UIViewController, który zawiera UIScrollView w środku.Nie można wyłączyć bounce za pomocą UIScrollView i pagingEnabled = YES

m_scrollView jest z pagingEnabled=YES;

Na każdej "stronie" Mam UIViewController tego artykułu wyświetlacza.

Aby uniknąć odbijania gdy trzepnąć użytkownika od strony do strony użyłem:

m_scrollView.bounces=NO;

a nawet

m_scrollView.alwaysBounceHorizonal=NO;

Zauważyłem, że zmiana była tylko do ostatniej strony, która jest nie odbijaj się. Ale przesuwając pozostałe strony, odbijają się.

EDIT: optymalnym rozwiązaniem było sprawić, że pierwsza i ostatnia strona bounce (tak, użytkownik otrzyma repsond nie ma więcej stron \ stronicowania), az drugiej strony bez odbijając

irytujące przy odbiciu podczas przesuwania stron efekt odbicia nie jest równy i taki sam. czasami odbija się więcej, a czasami mniej.

Myślę, że ma to jakiś związek z danymi dotyczącymi ładowania na stronach, ale nie sądzę, że tak jest, ponieważ dzieje się tak również, gdy wszystkie strony są załadowane i żadna asynchroniczna operacja ładowania nie dzieje się w tle. Jakieś pomysły?

EDIT 2: Chyba własnością odrzuceń jest o krawędzi UIScrollView, ale kiedy przechodząc od strony do strony nie jest też podskakują. Czasami widzę trochę następnej strony. Na przykład: przesuwając ze strony 2 na stronę 3, aw animacji przesuwania widzę na stronie 0.1 sekundy 4.

Ponadto animacja przesuwania nie jest stała. i czuję, że każde przesunięcie działa trochę inaczej. Z góry dzięki.

+0

Co masz na myśli mówiąc "podskakując między stronami"? Cały punkt odbijania to "odbijanie", gdy użytkownik osiąga dowolną krawędź przewijania, nie ma podskakiwania między stronami w widoku przewijania stronicowania. –

+0

Jeśli mam 10 "stron" w przewijanym widoku .. Kiedy przeciągam od strony 2 do strony 3 (na przykład) Dostaję losowo to wyniki: -strona 3 zasięg to granica z małym "odbiciem" (powrót i naprzód) -strona 3 zasięg to granica, i widzę małą stronę 4 przed odbiciem wstecz -strona 3 zasięg to granica i zatrzymanie (i to właśnie chcę) znowu animacja przesuwania nie jest stała, a nie jest przyjazny dla użytkownika. Mam nadzieję, że tu jestem. – perr200

+0

zachowanie zależy od tego, ile przeciągasz przed zwolnieniem, sprawdź metody delegatów przewijania, aby sprawdzić, czy możesz kontrolować je bardziej szczegółowo: – bshirley

Odpowiedz

1

Jeśli ustawisz delegata dla swojego UIScrollView, delegat otrzyma scrollViewWillBeginDecelerating:, gdy użytkownik podniesie palec z ekranu. Możesz może następnie możesz przejąć kontrolę przy użyciu metody UIScrollView o nazwie setContentOffset:animated:, aby przewinąć najbliższą stronę do widoku, lub ustawić własną animację przy użyciu metody animateWithDuration:animations: - Nie jestem pewien, czy twoja własna animacja będzie miała pierwszeństwo przed już opóźnienie w toku.

Można również ustawić wartość parametru UIScrollView: decelerationRate na UIScrollViewDecelerationRateFast, co może spowodować, że przewijanie będzie bardziej spójne w tej sytuacji.

0

zestaw właściwość bounce scrollBar false/nie .... to nie odbije po tym ... spróbować nadzieję Yu dostanie swoje rozwiązanie ....

15

po prostu to zrobić:

_scrollView = [[UIScrollView alloc]init]; 
_scrollView.pagingEnabled = YES; 
_scrollView.bounces = NO; //Here 

, nie ma już więcej odbić!

Powiązane problemy