demo: github.com/OSSpinLock/…git
初始狀態:從開始到拖拽未超過臨界線。github
拖拽狀態:拖拽且超過臨界線異步
刷新狀態:超過臨界線後鬆手,以及回彈至臨界線動畫
1. KVO:經過觀察UIScrollView的contentOffset,來設置當前處於哪一個狀態。cdn
2.關聯屬性:將刷新的view關聯到UIScrollView。blog
1.拖拽狀態 -->刷新狀態: 此時說明用戶鬆手,須要回彈至臨界點。在動畫中將contentInset設置爲64,contentOffset設置爲-64。開發
2.刷新狀態 --> 初始狀態:此時說明異步回調執行完畢,開發者手動置回初始狀態。須要在動畫中將contentInset和contentOffset設置爲0。get