我正在尝试将UIRefresh控件添加到节标题表中,具体取决于标志,但它没有显示,有人可以看到原因吗?
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerView = UIView()
...
let textAttribs = [NSAttributedStringKey.foregroundColor: UIColor.white, NSAttributedStringKey.font: UIFont(name: "Arial", size: 16.0)!]
if appsAreGettingInstalled {
let titleString = NSAttributedString(string: "Apps are getting installed", attributes: textAttribs)
let lbl = UILabel(frame: CGRect(x: 10, y: 0, width: tableView.bounds.size.width - 20, height: 40))
lbl.attributedText = titleString
let refreshCtrl = UIRefreshControl()
refreshCtrl.beginRefreshing()
let view = UIScrollView(frame: CGRect(x: 10, y: 50, width: tableView.bounds.size.width - 20, height: 40))
view.addSubview(refreshCtrl)
view.addSubview(lbl)
headerView.addSubview(view)
}
...
}
我也试过view.refreshControl = refreshCtrl
,但它仍然没有显示,只有标签。
答案 0 :(得分:5)
还有一种通过“界面”构建器添加刷新控制的简单方法。
首先,在故事板中选择tableViewController,打开属性检查器,然后启用刷新
现在在viewdidLoad中添加以下代码:
self.refreshControl?.addTarget(self, action: #selector(ViewController.refreshLogic(_:)), for: UIControlEvents.valueChanged)
最后,refreshLogic函数可能如下所示:
func refreshLogic(refreshControl: UIRefreshControl) {
// Insert your logic here do some reloading of data and update the table view's data source
// reload your table
self.yourTableViewObj.reloadData
refreshControl.endRefreshing()
}
我认为这对你也有用。 快乐编码
答案 1 :(得分:0)
正如trungduc建议的那样,使用活动指示器视图而不是刷新控件解决了我的问题 - 谢谢