下拉以使用静态单元格刷新 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的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Angular 项目中自动刷新 ag-grid 中的单元格

UITableview刷新单元格在部分标题下滚动

使用下拉列表更改列中的所有单元格

使用 UDF 在单元格中定义下拉列表(数据验证)

静态部分/单元格的 UITableView 背景图像

以编程方式设置静态单元格的详细文本标签