сильнее вверх,если она достигает верхней границы и срабатывает первое отпружинивание? То есть чтобы был эффект пружины, но только единожды, а далее блокировать panGesture на прокрутку вверх (но не блокировать прокрутку вниз)
Вроде как нет какого то метода аля shouldScroll -> Bool в делегате ScrollView?
1. Заведи переменную: var didReachEnd: Bool = false 2. Изначально у scrollView задай bounces = true 3. Имплементируй метод делегата, чтобы определить, что ты проскроллил до конца: func scrollViewDidScroll(_ scrollView: UIScrollView) { didReachEnd = scrollView.contentOffset.y >= 0 && scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height) } 4. Имплементируй метод делегата, чтобы определить, что анимация инерции скролла завершена, и отлючай bounces, если до этого уже произошла прокрутка до конца: func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { if scrollView.bounces && didReachEnd { scrollView.bounces = false } }
хмм, в таком случае я в моменте когда contentOffset.y < 0 и scrollViewDidEndDecelerating не сработал я могу еще скролить вверх
До scrollViewDidEndDecelerating еще срабатывает: func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView) Поиграйся с ними, может получится что-то
Обсуждают сегодня