下拉以使用静态单元格刷新 UITableView
Posted
技术标签:
【中文标题】下拉以使用静态单元格刷新 UITableView【英文标题】:Pull down to refresh UITableView with static cells 【发布时间】:2016-07-12 08:21:48 【问题描述】:我想在我的UITableViewController
中下拉刷新UITableView
。
这是我的代码,但不起作用:
class MyTableViewController: UITableViewController
override func viewDidLoad()
super.viewDidLoad()
initComponents()
loadData()
func refresh(sender: AnyObject)
loadData()
func initComponents()
self.refreshControl = UIRefreshControl()
self.refreshControl?.addTarget(self, action: #selector(MyTableViewController.refresh(_:)), forControlEvents: UIControlEvents.ValueChanged)
//other code
func loadData()
//code
【问题讨论】:
用静态单元格刷新表格视图没有任何意义;细胞仍将具有相同的外观 @Paulw11 当我刷新时,我想要相同数量的单元格具有不同的内容。还有其他解决方案吗? 如果你想要不同的内容,那么你必须使用动态单元格并提供cellForRowAtIndexPath
中的单元格
【参考方案1】:
试试:
yourTableView.addSubview(self.refreshControl)
yourTableView.alwaysBounceVertical = true
【讨论】:
【参考方案2】:试试@Anil Varghese 的answer。
您必须添加目标,当刷新控件调用事件方法时,您可以更改数据源并重新加载表视图将帮助您重新加载数据。
var refreshControl: UIRefreshControl!
override func viewDidLoad()
super.viewDidLoad()
refreshControl = UIRefreshControl()
refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
refreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
tableView.addSubview(refreshControl) // not required when using UITableViewController
func refresh(sender:AnyObject)
// Code to refresh table view
【讨论】:
【参考方案3】:我在情节提要中使用 UITableViewController 测试您的代码。它运作良好!当我下拉刷新时,“刷新”功能起作用。那么,你是什么意思“不工作”?也许您忘记在情节提要中设置“自定义类”?
另外,我同意@Paulw11,最好使用动态单元格。
【讨论】:
以上是关于下拉以使用静态单元格刷新 UITableView的主要内容,如果未能解决你的问题,请参考以下文章