下拉刷新不适用于空的 TableView

Pull-to-refresh does not work on empty TableView

当我清除数据源中的所有数据并重新加载 tableView 时,下拉刷新不再可用。如何在空的 tableView 上启用下拉刷新?

override func viewDidLoad() {
    super.viewDidLoad()
    ...
    // Pull to refresh for iPhone
    refreshControl?.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)

    tableView.tableFooterView = UIView(frame: CGRectZero) // To remove separator line on empty cells
    tableView.estimatedRowHeight = Constants.DetailTableView.estimatedRowHeight
    tableView.rowHeight = UITableViewAutomaticDimension

    setupRefreshControl()
}

private func setupRefreshControl() {
    // If on iPhone, List becomes the pull-to-refresh handler and the delegate
    if UIScreen.mainScreen().traitCollection.horizontalSizeClass == .Compact {
        SyncService.shared.delegate = self
        refreshControl?.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
        refreshControl?.tintColor = UIColor.whiteColor()
    } else {
        // Otherwise disable the refresh control in List
        refreshControl = nil
    }
}

在 table 刷新功能中,我实际上有代码显示一些 'empty table' 视图以提醒用户 table 视图是空的,并且此视图位于 tableview 的视图,因此阻止了交互。我修复了视图的图层,现在可以正常工作了。因此,如果您遇到问题中的问题,只需检查某些视图是否与您的 table 视图不重叠,这是我的情况。

在我的例子中,我只需要启用弹跳:

self.collectionView.alwaysBounceVertical = YES;

default NO. if YES and bounces is YES, even if content is smaller than bounds, allow drag vertically