2011-11-01 1 views
7

W głównym widoku UITableView dla RootViewController.Widok pływający nad UITableView w RootViewController

Jak mogę dodać widok na TableView RootViewControllers, z jego położeniem względem ekranu, a nie TableView, więc nie przewija się z nim?

Uwaga - będzie to pasek postępu pokazujący nowe dane dotyczące postępu pobierania tabeli.

Odpowiedz

5

Byłoby pomóc, jeśli pisał swój kod, ale: jesteś przypuszczalnie dodanie UITableView do swojego RootViewController z mniej więcej tak:

[self.view addSubview:myUITableView]; 

Wystarczy dodać swój widok pływającego w taki sam sposób (czyli go dodać do kontrolera widoku, a nie do twojego UITableView). Jeśli dodasz go po dodaniu widoku tabeli, będzie on już "nad" widokiem tabeli. W przeciwnym razie można doprowadzić go do góry z czymś takim:

[self.view bringSubviewToFront:myOverlayView]; 

Państwa zdanie nakładka powinna podklasa UIView i powinien ustawić własny backgroundColor do [UIColor clearColor] w celu uczynienia go przejrzyste. Aby umożliwić użytkownikowi kontynuowanie interakcji z widokiem tabeli (co prawdopodobnie powinno się zdarzyć), w overlide nakładki overlay hitTest:withEvent: i zwróć widok tabeli (zamiast zwracania self, który jest domyślnym zachowaniem). To przejdzie wszystkie dotknięcia do widoku tabeli pod spodem.

+3

Możesz ustawić userinteractionenabled na no, a to przejdzie wszystkie zdarzenia do widoku podstawowego, nie musisz przesłonić hitTest – jrturton

+0

@jrturton: tak, to dużo prostsze niż nadpisanie hitTest. – MusiGenesis

+0

Ponieważ jestem w mojej klasie RootViewController, muszę napisać: '[self.parentViewController.view addSubview: self.myOverlayView];', ale wszystko działa. –