2012-04-17 15 views
38

Nie mam na myśli, że chcę wyłączyć przewijanie. Chcę móc programowo powiedzieć tabeli, aby natychmiast przestał się poruszać (ale potem powinien być przewijany później niż). czy to możliwe?Jak zatrzymać przewijanie UITableView

+0

Try patrząc na ten link: http://stackoverflow.com/questions/986392/programmato-force-a-zakres przeglądania-to-stop-scrolling-do-sharing-a-table-vie Może to również działać: [tableView setContentOffset: tableView.contentOffset animated: NO]; Mam nadzieję, że to pomaga. :) – wayway

+0

Ten tytuł jest trochę mylący. –

+0

@JonathanKing: Nie sądzę, żeby to było w ogóle. Istnieje duża różnica między "jak przerobić przewijanie tabeli" i "jak zapobiec przewijaniu tabeli". To także dlatego pytania mają tytuł i dłuższy opis. – MusiGenesis

Odpowiedz

102

A UITableView jest podklasą UIScrollView. Jeśli powiesz jej, aby przejść do jego obecnej pozycji, zatrzyma przewijanie tak to powinno działać dla Ciebie:

[tableView setContentOffset:tableView.contentOffset animated:NO]; 
+0

Cóż, ten rodzaj działał, ale działa tylko po to, aby zatrzymać przewijanie tabeli. Jeśli tabela nie ma wystarczającej liczby wierszy do przewinięcia, to jeśli ją zignoruje, nadal będzie odbijać się nieco, co wyzwala wywołanie scrollViewDidScroll:, którego próbuję zapobiec, zatrzymując przewijanie. – MusiGenesis

+4

W takim przypadku powinien wyłączyć przewijanie, jeśli widok tabeli nie ma wystarczającej liczby wierszy. – ndfred

+3

To po prostu nie działa. – iOSdev

7

ustawić tableView.alwaysBounceVertical = NO;

+0

Jak to odpowiedzieć na pytanie? – Rambatino

+0

@Rambatino: Myślę, że użytkownik odpowiedział na mój komentarz pod wybraną odpowiedzą, także zapobiegając odbiciu, chociaż byłoby lepiej jako komentarz. – MusiGenesis

17

powiązać widoku tabeli do zmiennej o nazwie tableView, następnie z poniższej linii można wyłączyć przewijanie:

tableView.scrollEnabled = NO; 

ustawić go na YES, jeśli ma to być kolejny przewijania.

+1

+1 działa w moim przypadku. – Shinichi

-1

Jeśli używasz kontrolera widoku tabeli, wykonaj poniższe czynności

  1. Wybierz kontroler widoku tabeli na ujęć
  2. idź do atrybutu inspektor> Scrollview
  3. Odznacz przewijanie włączoną
+0

pytanie wyraźnie stwierdza programowo – Ryan

+0

@Ryan, masz rację! – Vats

Powiązane problemy