刷新控件设置为 TableViewController 即使不将其添加为子视图也能正常工作
Refresh Control set to TableViewController works even without adding it as Sub View
在下面的代码中,创建了一个 TableViewController 并设置了它的 tableView 和 refreshControl 属性。然而,即使没有将 TableViewController 作为子视图添加到 View Controller 视图,刷新控件也会开始工作。很好奇这是怎么发生的?
@IBOutlet weak var dashBoardTableView: UITableView!
let refreshControl = UIRefreshControl()
func configureRefreshControl()
{
refreshControl.addTarget(self, action: #selector(self.pullToRefresh) , for: .valueChanged)
//UIRefreshControl will not work properly without embedding it in a UITableViewController
let tableViewContainerVC = UITableViewController()
tableViewContainerVC.tableView = dashBoardTableView
tableViewContainerVC.refreshControl = refreshControl
}
很可能苹果开发者在 UITableViewController 中做了这样的事情:
var refreshControl:UIRefreshControl {
didSet{
//......
self.tableView.tableHeaderView?.addSubview(refreshControl)
//......
}
}
所以 RefreshController 在 : tableViewContainerVC.refreshControl = refreshControl
之后立即工作
在下面的代码中,创建了一个 TableViewController 并设置了它的 tableView 和 refreshControl 属性。然而,即使没有将 TableViewController 作为子视图添加到 View Controller 视图,刷新控件也会开始工作。很好奇这是怎么发生的?
@IBOutlet weak var dashBoardTableView: UITableView!
let refreshControl = UIRefreshControl()
func configureRefreshControl()
{
refreshControl.addTarget(self, action: #selector(self.pullToRefresh) , for: .valueChanged)
//UIRefreshControl will not work properly without embedding it in a UITableViewController
let tableViewContainerVC = UITableViewController()
tableViewContainerVC.tableView = dashBoardTableView
tableViewContainerVC.refreshControl = refreshControl
}
很可能苹果开发者在 UITableViewController 中做了这样的事情:
var refreshControl:UIRefreshControl {
didSet{
//......
self.tableView.tableHeaderView?.addSubview(refreshControl)
//......
}
}
所以 RefreshController 在 : tableViewContainerVC.refreshControl = refreshControl