Próbuję zaimplementować widok przewijania, który jest przyciągany do punktów podczas przewijania.UIScrollWyłącz snap-to-position podczas przewijania
Wszystkie posty tutaj widziałem o przyciąganie do punktu "po" użytkownik zakończył przeciąganie przewijania. Chcę go przyciągnąć podczas przeciągania.
tej pory mam to zatrzymać bezwładność po przeciągnięciu i działa prawidłowo:
func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
targetContentOffset.memory = scrollView.contentOffset
}
próbowałem tego, ale nie działa jako pożądanej:
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;
}
Kiedy próbuję tego, po przyciśnięciu, użytkownik musi podnieść palec w górę, a następnie rozpocząć przeciąganie ponownie. Czy istnieje sposób na zrobienie bez podnoszenia dotyku? – Gizmodo
@ gadizm Nie mogłem zrozumieć. Przyciąganie do pozycji oznacza, że użytkownicy mogą przeciągać, ale przewijanie nie będzie przewijane. Teraz, na którym wydarzeniu chcesz przewinąć scrollView ponownie? –
@ gizmodo Jeśli chcesz zrobić przystawkę po zatrzymaniu użytkownika, przeciągnij scrollView, http://stackoverflow.com/a/35197919/1378447 –