UITableView программно не отображается

Я создаю мое представление таблицы программно со следующим:

lazy var myTableView: UITableView =
{
    let tableView = UITableView()
    tableView.delegate = self
    tableView.dataSource = self
    tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
    return tableView
}()

Затем я добавляю его в качестве подвида к моему представлению в viewDidLoad:

view.addSubview(myTableView)

Затем в моем методе, где я настроил все ограничения пользовательского интерфейса, я выложил его со следующим:

myTableView.widthAnchor.constraintEqualToAnchor(view.widthAnchor).active = true
myTableView.topAnchor.constraintEqualToAnchor(temporaryContainerView.bottomAnchor).active = true

Наконец, вот мои методы делегата / источника данных:

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

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

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell!
    cell.textLabel?.text = "Test"

    return cell
}

Когда я ставлю точки останова на вышеупомянутых методах, кажется, что numberOfRowsinSection вызывается много раз, но cellForRowAtIndexPath не вызывается вообще.

Почему он не появляется?

1 ответ

  1. Я должен был установить ограничение centerXAnchor на моем TableView, чтобы он был расположен правильно вместе с translatesAutoresizingMaskIntoConstraints = false