如何自定义UIRefreshControl以使下拉高度低于默认值

sup*_*key 6 objective-c ios uirefreshcontrol

在iOS App中的UIRefreshControl中,我认为默认设置是当我将UITableView(UISrollView)拉下约"100px"时,刷新开始.

我想使上面的值更小.(例如,"50px")

这可能吗?

如果可能,请告诉我示例代码.

小智 5

尝试这个:

// definition
extension UIRefreshControl {
    func refreshManually() {
        beginRefreshing()
        sendActions(for: .valueChanged)
    }
}
Run Code Online (Sandbox Code Playgroud)
// usage
var isRefreshingManually = false
func scrollViewDidScroll(_ scrollView: UIScrollView) {
    if scrollView.contentOffset.y < -80.0 {
        if !isRefreshingManually && !refreshControl.isRefreshing {
            isRefreshingManually = true
            refreshControl.refreshManually()
        }
    } else if scrollView.contentOffset.y >= 0 {
        isRefreshingManually = false
    }
}
Run Code Online (Sandbox Code Playgroud)

我的示例代码适用于 UICollectionView,但 UITableView 和 UIScollView 也可以很好地工作。

将我的代码中的“-80.0”替换为您想要的阈值。