Sto cercando di implementare una vista a scorrimento che scatta sui punti durante lo scorrimento di.UIScrollView snap-to-position durante lo scorrimento
Tutti i post qui ho visto circa lo snap a un punto "dopo" l'utente ha terminato di trascinare la pergamena. Voglio farlo scattare durante il trascinamento.
Finora ho questo per fermare l'inerzia dopo il trascinamento e funziona benissimo:
func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
targetContentOffset.memory = scrollView.contentOffset
}
Ho provato a farlo, ma non funziona, se lo desideri:
var scrollSnapHeight : CGFloat = myScrollView.contentSize.height/10
scrollViewDidScroll:
func scrollViewDidScroll(scrollView: UIScrollView) {
let remainder : CGFloat = scrollView.contentOffset.y % scrollSnapHeight
var scrollPoint : CGPoint = scrollView.contentOffset
if remainder != 0 && scrollView.dragging
{
if self.lastOffset > scrollView.contentOffset.y //Scrolling Down
{
scrollPoint.y += (scrollSnapHeight - remainder)
NSLog("scrollDown")
}
else //Scrolling Up
{
scrollPoint.y -= (scrollSnapHeight - remainder)
}
scrollView .setContentOffset(scrollPoint, animated: true)
}
self.lastOffset = scrollView.contentOffset.y;
}
Quando si prova questo, dopo lo snap, l'utente deve sollevare il dito, quindi iniziare a trascinare di nuovo. C'è un modo per fare senza sollevare ritocchi? – Gizmodo
@gizmodo Non ho potuto capire. Scattare a posizione significa che gli utenti possono trascinare ma scrollview non scorrerà. Ora su quale evento vuoi far scorrere di nuovo lo scrollView? –
@gizmodo Se si desidera eseguire lo snap dopo che l'utente interrompe il trascinamento di scrollView, http://stackoverflow.com/a/35197919/1378447 –