2016-10-04 4 views
0

Я создаю мой вид таблицы программно с помощью следующих действий: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 

Окончание , Вот мои методы делегата/DataSource:

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 не вызывается вообще.

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

+0

Это отчасти звучит как Tableview признает, что ни одна из ячеек не являются на самом деле на экране, которые (если true) объясняет, почему cellForRow не вызывается. Я вижу только ограничения для width & bottom - как насчет атрибута top/height? Кадр по умолчанию равен 0,0,0,0, поэтому я подозреваю, что вы явно не устанавливаете высоту или верхнее и нижнее ограничение, оно имеет высоту 0. Вы можете проверить это, поставив точку останова в свой метод делегирования numberOfRows , и когда он заморожен, распечатайте рамку таблицы view (p myTableView.frame) – creeperspeak

ответ

0

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

Смежные вопросы