C'è un metodo delegato UIScrollView appositamente per questo!
La vista tabella (che è una vista di scorrimento) chiamerà - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
quando l'utente interrompe lo scorrimento. Puoi impostare manipolare lo targetContentOffset
per assicurarti che finisca dove vuoi, e decelererà fino alla fine in quella posizione (proprio come un UIScrollView di impaginazione).
Per esempio, se le cellule erano alti tutti i 100 punti, si potrebbe fare:
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
targetContentOffset->y = 100 * (int)targetContentOffset->y/100;
}
Naturalmente, è anche possibile ispezionare il targetContentOffset
passato per vedere dove stava andando a terra, e poi trovare la cellula che si trova e la modifica in modo appropriato.
fonte
2013-04-18 16:59:11
si può fare questo modificando contentOffset del tavolo. –
puoi usare, scrollview metodo delegate e contentoffset di UITableview, come suggerito da Nishant :) – Mangesh