2012-12-12 13 views
7

Muszę ograniczyć odbicie w UIScrollView, aby odbijało się jak zwykle u dołu, ale nie przekracza X pikseli u góry (dolna nie ma znaczenia).Ograniczenie odbicia dla UIScrollview w iOS

Czy istnieje sposób ograniczenia rozmiaru odbicia? Sądzę, że być może metoda w delegacie takim jak scrollViewWillScroll (zamiast scrollViewDidScroll) pozwoli mi spożywać te zdarzenia przewijania, które poruszają się dalej niż top + X, ale nie udało mi się jak dotąd znaleźć odpowiedniego.

Jakieś wskazówki?

+0

Czy mogę zapytać, dlaczego chcesz zmniejszyć odbijanie? –

+0

Przepraszam za super spóźnioną odpowiedź, ale tak, można: Bawiłem się tworząc efekt Parallax z listą frontów i obrazem tła. Coś podobnego do rzeczy z aplikacji PAth 2.0, ale w pewnym momencie chciałem, aby odbicie było różne w zależności od rozmiaru obrazu z tyłu, więc główna lista nigdy się nie porusza (odbija) do punktu, w którym czarna przerwa jest widoczna między obrazem z tyłu a przednia lista. – HiddenDev

Odpowiedz

13

scrollViewDidScroll: jest prawidłową metodą do tego. Proste dostosuj tam contentOffset.

Ten przykład ograniczyć górną bounce do 20 pikseli:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView.contentOffset.y < -20) { 
     scrollView.contentOffset = CGPointMake(0, -20); 
    } 
} 

Zauważ, że tam jest trochę nienaturalny zwłoki aż widoku jest przewijane z powrotem do 0,0 gdy powód dla Odbicie było spowolnione, a nie oporem. Ale myślę, że nie ma sposobu, aby temu zapobiec. Zasadniczo scrollView wciąż odbija się w pełni, ale go nie wyświetla.

+0

Masz całkowitą rację :) Może robiłem coś źle wcześniej, ponieważ nie wyglądało ładnie. – HiddenDev

Powiązane problemy