【Swift】scrollViewDidEndDecelerating和scrollViewDidEndDragging的區(qū)分

image.png

scrollViewDidEndDeceleratingscrollViewDidEndDraggingUIScrollViewDelegate 協(xié)議中的兩個方法,它們在 UIScrollView 滾動行為方面發(fā)揮不同作用。以下是這兩個方法的區(qū)別:
1. scrollViewDidEndDecelerating:
此方法在 UIScrollView 減速完成并完全停止?jié)L動后調(diào)用。這里所指的減速是指當用戶快速滑動 UIScrollView 以產(chǎn)生慣性滾動效果時發(fā)生的減速過程。當 UIScrollView 速度減為零時,scrollViewDidEndDecelerating 會被觸發(fā)。
2. scrollViewDidEndDragging:willDecelerate:
此方法在用戶手指從 UIScrollView 上抬起(即停止拖動)時調(diào)用。willDecelerate: 參數(shù)表示 UIScrollView 在停止拖動后是否還將繼續(xù)減速。

  • 如果 willDecelerate:true,則表示在用戶停止拖動后,UIScrollView 仍然具有足夠的速度以產(chǎn)生減速效果,在減速結(jié)束時會調(diào)用 scrollViewDidEndDecelerating。
  • 如果 willDecelerate:false,則表示在用戶停止拖動后,UIScrollView 直接停止?jié)L動,而不再觸發(fā)其他事件。
    總結(jié)一下:
  • scrollViewDidEndDragging:willDecelerate: 處理的是用戶停止拖動 UIScrollView 的事件。
  • scrollViewDidEndDecelerating 處理的是 UIScrollView 在自然減速并最終停止?jié)L動的事件。
    通常,如果您希望在 UIScrollView 完全停止?jié)L動時執(zhí)行某些操作,可以通過在 scrollViewDidEndDragging:willDecelerate: 方法中檢查 willDecelerate: 參數(shù)為 false,以及實現(xiàn) scrollViewDidEndDecelerating 方法,來確保覆蓋所有情況。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容