2017-02-13 3 views
0

У меня есть UITableView с ограничениями. Когда я пытаюсь получить ограничения для UITableView, он возвращает 0 элементов. Любая помощь?Как получить ограничения UITableView?

self.tableView.constraints 
+1

где вы это называете? в 'viewDidLoad()'? –

+0

Как/Где вы хотите его использовать? – mihatel

+0

Когда пользователь выполняет удаление строки. – PradeshV

ответ

0

Зависит от условий, в которых применяются ограничения. Если у вас есть в UIViewController с UITableView и добавить ограничения, ограничения применяются в UIViewController не UITableView

Используйте этот код вместо:

self.tableView.superview?.constraints 
+0

Да, я знал это. Но ограничения 'UITableViewCell' были бы в' UITableView'. – PradeshV

1

Вы должны получить вид таблицы SuperView ограничений и проверить вид таблицы как первый или второй элемент.

for constraint in (self.tableView.superview?.constraints)! { 
    if constraint.firstItem as! NSObject == self.tableView || 
    constraint.secondItem as! NSObject == self.tableView { 
     // table view constraints 
    } 
} 
1

Извлечение ограничений программно не очень хорошая идея.

Вы можете получить все ограничения, влияющие на представление, используя constraintsAffectingLayout(for:), однако вы, вероятно, получите гораздо больше ограничений, чем вы ожидаете.

Лучшее решение - сохранить ссылки на заданные ограничения при их добавлении. Если вы используете раскадровку или xib, создайте для них IBOutlet.

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