Bazı eski iOS sürümlerinde (iOS 9, 10 gibi), scrollViewDidEndDecelerating
scrollView dokunarak aniden durdurulursa tetiklenmez.
Ancak mevcut sürümde (iOS 13) scrollViewDidEndDecelerating
kesin olarak tetiklenecek (Bildiğim kadarıyla).
Dolayısıyla, Uygulamanız daha önceki sürümleri de hedeflediyse, Ashley Smart'ın bahsettiği gibi bir geçici çözüme ihtiyacınız olabilir veya aşağıdakini yapabilirsiniz.
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
if !scrollView.isTracking, !scrollView.isDragging, !scrollView.isDecelerating {
scrollViewDidEndScrolling(scrollView)
}
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
if !decelerate, scrollView.isTracking, !scrollView.isDragging, !scrollView.isDecelerating {
scrollViewDidEndScrolling(scrollView)
}
}
func scrollViewDidEndScrolling(_ scrollView: UIScrollView) {
}
Açıklama
UIScrollView üç şekilde
durdurulacaktır : - hızlıca kaydırılır ve kendi kendine
durdurulur - parmak dokunuşuyla hızlıca kaydırılır ve durdurulur (Acil durum freni gibi)
- yavaşça kaydırılır ve durdurulur
Birincisi scrollViewDidEndDecelerating
ve diğer benzer yöntemlerle tespit edilebilirken diğer ikisi tespit edilemez.
Neyse ki, UIScrollView
"// 1" ve "// 2" ile yorumlanan iki satırda kullanılan onları tanımlamak için kullanabileceğimiz üç duruma sahiptir.