কিছু পূর্ববর্তী আইওএস সংস্করণে (যেমন আইওএস 9, 10), scrollViewDidEndDecelerating যদি স্ক্রোলভিউটি স্পর্শ করে হঠাৎ বন্ধ হয়ে যায় তবে ট্রিগার করা হবে না।
তবে বর্তমান সংস্করণে (আইওএস ১৩) scrollViewDidEndDeceleratingনিশ্চিতভাবে ট্রিগার করা হবে (যতদূর আমি জানি)।
সুতরাং, যদি আপনার অ্যাপ্লিকেশনটিকে পূর্বের সংস্করণগুলিকেও লক্ষ্য করে তোলা হয়, আপনার অ্যাশলে স্মার্ট দ্বারা উল্লিখিত সংস্করণের মতো একটি কাজের প্রয়োজন হতে পারে বা আপনি নিম্নলিখিতটি পেতে পারেন।
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
if !scrollView.isTracking, !scrollView.isDragging, !scrollView.isDecelerating { // 1
scrollViewDidEndScrolling(scrollView)
}
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
if !decelerate, scrollView.isTracking, !scrollView.isDragging, !scrollView.isDecelerating { // 2
scrollViewDidEndScrolling(scrollView)
}
}
func scrollViewDidEndScrolling(_ scrollView: UIScrollView) {
// Do something here
}
ব্যাখ্যা
ইউআইএসক্রোলভিউ তিনটি উপায়ে থামানো হবে:
- দ্রুত স্ক্রোল করে নিজেই থামিয়ে দেওয়া
- দ্রুত স্ক্রোল করে আঙুলের স্পর্শের মাধ্যমে থামিয়ে দেওয়া (জরুরী ব্রেকের মতো)
- আস্তে আস্তে স্ক্রোল করা এবং থামানো
প্রথমটি সনাক্ত করতে পারে scrollViewDidEndDeceleratingএবং অন্যান্য অনুরূপ পদ্ধতিগুলি যখন অন্য দুটি করতে পারে না।
ভাগ্যক্রমে, UIScrollViewতাদের চিহ্নিত করার জন্য আমরা তিনটি স্ট্যাটাস ব্যবহার করতে পারি, যা "// 1" এবং "// 2" দ্বারা মন্তব্য করা দুটি লাইনে ব্যবহৃত হয়।