2017-08-14 13 views
-1

次のコードでは、TableViewControllerが作成され、tableViewとrefreshControlのプロパティが設定されています。ただし、View ControllerビューにTableViewControllerをサブビューとして追加しなくても、リフレッシュコントロールが機能し始めます。これがどう起こっているのか不思議でしたか?Refresh ControlをTableViewControllerに設定すると、SubViewとして追加しなくても機能します

@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 
} 
+0

? 'dashBoardTableView.refreshControl = refreshControl'すれば十分でしょう。 – kchromik

+0

@kchromik dashBoardTableViewはUITableViewのサブクラスであり、refreshControlプロパティはありません。 – Vaquita

答えて

1

それはリンゴの開発者がのUITableViewControllerで、このようなことをした可能性が高いです。

var refreshControl:UIRefreshControl { 
    didSet{ 
     //...... 
     self.tableView.tableHeaderView?.addSubview(refreshControl) 
     //...... 
    } 
} 

のでRefreshControllerは直後に動作します:あなたは別の `UITableViewController`を初期化しないのはなぜtableViewContainerVC.refreshControl = refreshControl

関連する問題