Sarebbe utile se hai postato il tuo codice, ma: si sta presumibilmente aggiungendo la UITableView
al vostro RootViewController con qualcosa di simile:
[self.view addSubview:myUITableView];
è sufficiente aggiungere il galleggiante vista nello stesso modo (cioè aggiungerlo al tuo controller di visualizzazione, non al tuo UITableView). Se lo aggiungi dopo aver aggiunto la vista tabella, sarà già "sopra" la vista tabella. In caso contrario si può portare al top con qualcosa di simile:
[self.view bringSubviewToFront:myOverlayView];
La vista di sovrapposizione dovrebbe sottoclasse UIView
, e dovrebbe impostare il proprio backgroundColor
-[UIColor clearColor]
al fine di rendere più trasparente. Per consentire all'utente di continuare ad interagire con la vista tabella (che presumibilmente si vuole che accada), nella sottoclasse overlay si sostituisce hitTest:withEvent:
e si restituisce la vista tabella (invece di restituire self
, che è il comportamento predefinito). Questo passerà tutti i tocchi alla vista tabella sottostante.
È possibile impostare userinteractionenabled su no e questo passa tutti gli eventi alla vista sottostante, non è necessario sovrascrivere hitTest – jrturton
@jrturton: sì, è molto più semplice di override di hitTest. – MusiGenesis
Dato che sono nella mia classe RootViewController devo scrivere: '[self.parentViewController.view addSubview: self.myOverlayView];', ma tutto funziona. –