2016-07-12 38 views
0

我想下拉刷新UITableView在我的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 
    } 
} 
+0

使用靜態單元刷新表視圖沒有任何意義;細胞仍然會有相同的外觀 – Paulw11

+0

@ Paulw11當我刷新我想要相​​同數量的細胞與他們不同的內容。還有另一個解決方案? –

+0

如果你想要不同的內容,那麼你必須使用動態單元格,並在'cellForRowAtIndexPath'中提供單元格。 – Paulw11

回答

1

嘗試:

yourTableView.addSubview(self.refreshControl) 
yourTableView.alwaysBounceVertical = true 
+0

不適用於我 –

1

嘗試@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 
} 
0

我在storyboard中用UITableViewController測試你的代碼。它運作良好!當我拉下來刷新時,「刷新」功能起作用。那麼,你是什麼意思「不工作」?也許你忘了在故事板中設置「自定義類」?

另外,我同意@ Paulw11,最好使用動態單元格。