iOS - UITableView 的 UIRefreshControl 与 UITableViewController 的 UIRefreshControl

iOS - UITableView's UIRefreshControl vs. UITableViewController's UIRefreshControl

在我的 UIViewController 中,我有一个 UITableView 作为子视图之一。我使用以下代码添加 UIRefreshControl

// enable "pull to refresh"
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull To Refresh!" attributes:@{NSForegroundColorAttributeName : [UIColor whiteColor], NSFontAttributeName : [UIFont systemFontOfSize:17]}];
[refreshControl addTarget:self action:@selector(fetchArticles) forControlEvents:UIControlEventValueChanged];
refreshControl.backgroundColor = [UIColor colorWithRed:0.0f/255.0f green:102.0f/255.0f blue:153.0f/255.0f alpha:1.0];
refreshControl.tintColor = [UIColor whiteColor];
self.refreshControl = refreshControl;
[self.tableView addSubview:self.refreshControl];

我的应用程序中有另一个使用 UITableViewController 的屏幕,它的 UIRefreshControl 与我为 UITableView 添加的屏幕大不相同。

单独的 UITableViewUIRefreshControl 拖动时速度较慢,我通常不得不拖得更远才能让它开始刷新。

我的 UITableViewController 在我的另一个屏幕上的 UIRefreshControl 在拖动时速度更快,我不必拖那么远就可以开始刷新。

我更喜欢 UITableViewControllerUIRefreshControl 更流畅的行为,那么如何让我的 UIRefreshControl 让我的 UITableView 表现得更像默认行为属于 UITableViewController?

这可能吗?还是使用 UIContainerView 并使用 UITableViewController 我唯一的选择?

UIRefreshControl 旨在与 UITableViewController 一起使用;在 Apple 的网站上它说:

Because the refresh control is specifically designed for use in a table view that's managed by a table view controller, using it in a different context can result in undefined behavior.

也就是说,没有 UITableViewControllerUIRefreshControl without UITableViewController 的人也是成功的。使用风险自负。