当我重新加载然后消失时,UITableviewCell文本只闪烁一次

时间:2018-05-30 08:22:46

标签: ios swift uitableview

这是我的UITableView类,它将一个表添加到一个调用其函数open的类中。每当我尝试在没有主线程clouser的情况下重新加载时,我的重载也没有达到cellForRowAt

class UtititySwitcher:NSObject, UITableViewDataSource, UITableViewDelegate {

let utilityTableview = UITableView()


func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 3
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = UITableViewCell(style: .default, reuseIdentifier: "Mycell")
    cell.textLabel?.text = "hello"
    return cell
}




func Open(loginID:String, view:UIView)
{
    let frm = view.bounds
    let backView = UIView(frame: frm)
    self.utilityTableview.frame = CGRect(x: frm.minX + 10, y: frm.midY - 50, width: frm.width - 20, height: 100)
    self.utilityTableview.backgroundColor = UIColor.white
    self.utilityTableview.delegate = self
    self.utilityTableview.dataSource = self
    backView.addSubview(self.utilityTableview)
    view.addSubview(backView)

    OperationQueue.main.addOperation {
        self.utilityTableview.reloadData()
    }

}

}

2 个答案:

答案 0 :(得分:0)

您尚未设置utilityTableview的委托和数据源,因此不会通知此表视图谁应该收听并从中获取数据。在班级初始,添加
utilityTableview.delegate = self
utilityTableview.dataSource = self

答案 1 :(得分:0)

我认为原因是:      OperationQueue没有init 你可以尝试:

let operationQueue = OperationQueue()

operationQueue.main.addOperation {

    self.utilityTableview.reloadData

}