4

我試圖創建自定義垂直UIScrollView,它可以處理具有不同頁面高度的多個頁面。如何創建具有不同頁面大小的UIScrollView(頁面對齊,反彈)

假設:

  • 頁面高度大於屏幕高度
  • 如果頁面比屏幕高度高,它滾動照例的UIScrollView等於或大於 - 與彈跳頂部和底部
  • 如果用戶最終滾動並且「分頁符」在屏幕中間
    • 如果沒有速度 - 頁面捕捉到最近
    • 如果有速度 - 頁面更改一個在刷卡

我已經嘗試了許多方法來實現這一目標的方向,但我已經在很多的UIScrollView怪癖,這使得它很難絆倒了。

問題:

  • UIPanGestureRecognizer有獲得速度(velocityInView :)不可靠的方法
  • scrollViewWillEndDragging:withVelocity:targetContentOffset:方法讓我頭疼,因爲它可以隨意摧毀我嘗試動畫設置內容偏移量
  • 我不知道如何在中間頁面實現反彈,恐怕我不得不重寫整個滾動處理
  • 當我嘗試重寫設置時UIScrollView的減速內容偏移,我所得到的是
    • 我的內容設置
    • 減速抵消不斷超越內容偏移我設置

獎金

我也試過把UIScrollView作爲一個頁面放在UIScrollView裏面,但是這種方法也是脖子上的疼痛。例如,當我處於內部滾動的底部時,然後我向下滾動了一下,將手指放開,然後迅速再次抓住並向上滾動,外側滾動接觸到觸摸,滾動顯示內部。

有人知道如何做到這一點嗎?任何提示將有所幫助,因爲我完全卡住了...

回答