我想创建一个将refreshControll
添加到UITableView
的函数。
我遇到的问题是#selector
:
extension UITableView{
func refreshTableView(callFunction: #selector()){
refreshControl = UIRefreshControl()
refreshControl?.attributedTitle = NSAttributedString(string: "Pull to refresh")
refreshControl?.addTarget(self, action: #selector(callFunction), for: .valueChanged)
self.addSubview(refreshControl!)
}
}
我想指定使用该函数时要调用的函数。
这有可能吗?
答案 0 :(得分:3)
#selector(...)
是类型Selector
的表达式,因此您的方法应接受Selector
对象并将其直接传递给action:
参数。
extension UITableView {
func refreshTableView(callFunction: Selector) {
// ...
refreshControl?.addTarget(self, action: callFunction, for: .valueChanged)
// ...
}
}
myTableView.refreshTableView(callFunction: #selector(whatever))