如何在UIView中重新加载表视图?

时间:2017-06-26 22:19:23

标签: ios swift uitableview

我有以下功能:

func createTableViewCard() {
     let myTableView = UITableView(frame: CGRect(x: 0, y: 0, width: screenSize.width, height: screenSize.height))

     let newView = UIView(frame: CGRect(x: 10, y: 10, width: screenSize.width-20, height: screenSize.height-20))

     newView.addSubview(myTableView)

     view.addSubview(newView)
}

现在,在viewDidLoad()内,我想" reloadData"对于我刚刚添加到主视图的这个tableView。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

使myTableView成为类的属性并在主线程上重新加载:

func refreshUI() {
        dispatch_async(dispatch_get_main_queue(),{
        self.myTableView.reloadData()
    });
}

答案 1 :(得分:0)

尝试类似这样的事情。当你想在需要重新加载时将tableView添加到UIView.Call refreshUI函数中时调用createTableViewCard函数

   class YOUR_CLASS {     
      let myTableView = UITableView()
      ovverride func viewDidLoad(){
         self.createTableViewCard() // call this method when you want add tableView
      }
      func createTableViewCard() {
         self.myTableView = UITableView(frame: CGRect(x: 0, y: 0, width: screenSize.width, height: screenSize.height))
         let newView = UIView(frame: CGRect(x: 10, y: 10, width: screenSize.width-20, height: screenSize.height-20))
         newView.addSubview(myTableView)
         view.addSubview(newView)
      }
      func refreshUI() {
        dispatch_async(dispatch_get_main_queue(),{
            self.myTableView.reloadData()
        });
      }
    }

答案 2 :(得分:0)

首先全局声明您的表视图实例

var myTableView :UITableView!

直到并且除非您没有分配委托和数据源重新加载功能不起作用

func createTableViewCard() {
     myTableView = UITableView(frame: CGRect(x: 0, y: 0, width: screenSize.width, height: screenSize.height))

     let newView = UIView(frame: CGRect(x: 10, y: 10, width: screenSize.width-20, height: screenSize.height-20))

     newView.addSubview(myTableView)
     myTableView.delegate = self
     myTableView.datasource = self
     view.addSubview(newView)
}

以后您可以轻松重新加载数据

myTableView.reloadData()