我在UITableView上實現UIRefreshControl時遇到了一些麻煩。UITableView拖動UIRefreshControl的距離
除了事實上,我必須滾動屏幕的80%才能觸發UIRefreshControl,因此一切正常。有時我甚至無法觸發它,因爲屏幕底部有一個標籤欄,當手指到達它時取消滾動動作。
我已經看過其他應用程序,即蘋果的'郵件',其中UIRefreshControl滾動只有30%的屏幕後觸發。
我錯過了什麼?真的需要幫助這個!
在此先感謝
我在UITableView上實現UIRefreshControl時遇到了一些麻煩。UITableView拖動UIRefreshControl的距離
除了事實上,我必須滾動屏幕的80%才能觸發UIRefreshControl,因此一切正常。有時我甚至無法觸發它,因爲屏幕底部有一個標籤欄,當手指到達它時取消滾動動作。
我已經看過其他應用程序,即蘋果的'郵件',其中UIRefreshControl滾動只有30%的屏幕後觸發。
我錯過了什麼?真的需要幫助這個!
在此先感謝
你可能需要在處理您刷新據此,因爲UIRefreshControl不能修改無法使用UIRefreshControl,只是利用scrollViewDidScroll(或tableViewDidScroll如果的tableView)。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height)
{
// Refresh from here
}
}
我有一個類似的問題,這很可能是你的原因。 對於我碰巧我牆根的滾動指示讓我無法看到問題的明顯原因:UIScrollView
的高度比其superView
...
雙大得多檢查UIScrollView
的高度,因爲「拖動距離「只是該高度的百分比。 UITableView
也一樣,因爲它是UIScrollView
的子類。
編輯: 看來,這不是重現此問題的唯一方法,因爲所需的拖動距離觸發複習是在越野車的方式來計算。有關更多信息,請參閱this question。
但一般來說,如果您的UIScrollView
的高度與其父容器(例如屏幕本身)不同,就會發生這種情況。
'UISefrollView'支持'UIRefreshControl',從iOS 10開始。在此之前,你有一個嚴重的漂移。參見[SO 29791995](http://stackoverflow.com/a/43288926/218152) – SwiftArchitect 2017-04-08 01:00:16
感謝您的幫助,但我相信UIRefreshControl存在被使用和'郵件'使用它。我已經意識到,在我的應用程序中,與手指輕掃相比,UITableView的滾動距離比'Mail'短得多,即對於相同的手指輕掃距離,'Mail'UITableView的滾動次數遠遠超過我的應用程序的UITableViews。我想知道爲什麼...... – Joaocdn 2013-05-03 16:20:22