2016-07-12 3 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

Try:

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

Я тестирую ваш код с помощью UITableViewController в раскадровке. Это работает хорошо! Когда я останавливаюсь, чтобы обновиться, работает функция «Обновить». Итак, что вы подразумеваете под «не работает»? Возможно, вы забыли установить «Custom Class» в раскадровке?

Кроме того, я согласен с @ Paulw11, лучше использовать динамические ячейки.