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.
Możesz ustawić userinteractionenabled na no, a to przejdzie wszystkie zdarzenia do widoku podstawowego, nie musisz przesłonić hitTest – jrturton
@jrturton: tak, to dużo prostsze niż nadpisanie hitTest. – MusiGenesis
Ponieważ jestem w mojej klasie RootViewController, muszę napisać: '[self.parentViewController.view addSubview: self.myOverlayView];', ale wszystko działa. –