2013-03-15 13 views
7

Tak więc mam UITableView. Jego źródłem danych jest NSArray niestandardowych obiektów ładowanych po przeszukaniu. Kiedy przewijam do dołu, wszystko działa poprawnie, a następnie przesuwa się na dół zgodnie z potrzebami.UITableView Pozycja scrollIndicator niepoprawna

Teraz, gdy przewijam do początku, scrollIndicator zatrzymuje się o około 50 pikseli poniżej mojego paska UINavigation.

Nie mam pojęcia, dlaczego to zachowanie występuje tylko w tym tableViewController, ponieważ moje UITabBarController składa się z 5 UITableViewcontrollers każdy dziedziczy z tej samej super klasy. Każda pomoc jest mile widziana, z góry dzięki :)

EDIT:

Umieszczenie następujący kod w viewWillAppear:

self.tableView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, 0, 0); 

rozwiązał problem. Chociaż nadal nie wiem, dlaczego ten problem występuje tylko w jednej z pięciu tableViewControllers ...

+0

postu wy kod tutaj – Balu

+0

nie pisać żadnych kod tutaj jak myślałem o czymś takim scrollIndicatorInsets może rozwiązać ten problem. Po prostu nie mogłem go znaleźć ... – pmk

Odpowiedz

9

Wygląda na to, że źle ustawiłeś właściwość scrollIndicatorInsets widoku przewijania. Może być taki sam zarówno dla dolnej, jak i górnej. Ustaw tak, aby mieć tylko margines na dole.

tj. użyć do tego celu UIEdgeInsetMake(<top> , <left>,<bottom>,<right>);. tj Twoim przypadku

yourScrollView.scrollIndicatorInsets = UIEdgeInsetMake(0, 0,bottomInset,0); //Here bottom inset would be the value you have right now . 
+0

Dziękuję za odpowiedź, to rozwiązało mój problem. Dziwne w tym problemie jest to, że nigdy nie zmieniam niczego na tej wartości, a scrollIndicator jest pokazywany we wszystkich widokach ... W każdym razie dzięki! – pmk

1

Jak UITableView's nadklasą jest UIScrollView, że lepiej ustawić UIScrollView'sscrollIndicatorInsets własności do wymaganej pozycji.