Attualmente ho un view controller
che è composto da un Navigation bar
, seguito da un UIView
che ha due UIButtons
aggiunto come subViews. C'è poi un UITableView
sotto che inizia nella parte inferiore del contenitore UIView
.Effettuare scorrimento UIView con UITableView ma pin to top out of
Al momento, quando l'utente scorre lo UITableView
passa dietro allo UIView
e UIButtons
. Quello che in realtà voglio succedere è che lo UIView
e lo UIButtons
si spostino verso l'alto con la vista tabella ma solo per il valore della loro altezza che in questo caso è 58 pixel. Il flusso sarebbe così ...
1) I rotoli di tabella e lo UIView
si spostano con esso per i primi 58 pixel.
2) L'utente continua a scorrere la tabella ma gli "spilli" UIView
"soli" appena fuori visualizzazione sotto lo navigation bar
.
3) Quando l'utente scorre la tabella, lo UIView
viene prelevato e trascinato in vista. Credo che la nuova app di Facebook faccia qualcosa di simile nella timeline.
Non voglio impostare UIView
come TableHeaderView
della tabella poiché dispongo anche di un pull-to-refresh che quindi si trova sopra i pulsanti e sembra terribile. Ho provato a giocare con le proprietà contentOffset
del sottostante scrollview
della tabella, ma ho colpito un muro di mattoni.
Qualsiasi consiglio su dove iniziare sarebbe apprezzato.
Grazie
EDIT: Sto ottenuto un po 'oltre e utilizzando questo codice per spostare la cornice del UIView.
-(void) scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog (@"Content Offset: %f", self.tableView.contentOffset.y);
NSLog (@"Button Frame: %f", self.btnBackground.frame.origin.y);
if (self.tableView.contentOffset.y > 0)
{
CGRect newFrame = self.btnBackground.frame;
newFrame.origin.x = 0;
newFrame.origin.y = -self.tableView.contentOffset.y;
[self.btnBackground setFrame: newFrame];
}
}
Il problema ora è che il metodo delegato scrollViewDidScroll non viene licenziato abbastanza in fretta se la visualizzazione della tabella viene fatto scorrere veloce. Il risultato è che UIView non torna completamente alla sua posizione originale quando scorre rapidamente.
Ehi, sto cercando di affrontare un problema simile in questo momento. Hai mai capito cosa fare? @paulmorris – Thomas
Domanda correlata: http://stackoverflow.com/questions/25374090/move-a-view-when-scrolling-in-uitableview –
Ehi, anche io sono venuto a una situazione simile. Il progettista vuole che il layout si comporti esattamente come CoordinatorLayout in Android. Btw l'hai capito? –