我有一个相当复杂的设置,方法如下:
UITableView
,连接了必要的东西,并添加了4个约束来固定顶部,底部,左侧,右侧UITableViewCell
来设置约束。一切正常。
然后我尝试用在代码中声明的视图替换IB中设置的视图,从IB中删除表视图,告诉IB使用我的自定义视图。在我的自定义视图中,我创建了一个UITableView
(将自动屏蔽事物设置为false),并添加了4个约束,将顶部,底部,左侧和右侧固定到父视图。
然而,当我这样做时,我的所有单元格都有自动布局错误“无法同时满足约束”。
我不明白的是 - 为什么给同一个单元格使用相同的自动布局代码:
UITableView
并在IB中设置UITableView
的约束时,它可以正常工作UITableView
并在代码中设置UITableView
约束时,会出现约束错误。这是我对UITableView
:
override func updateConstraints()
{
super.updateConstraints()
if (self.didUpdateConstraints)
{
return
}
self.tableView.autoPinEdgeToSuperviewEdge(
ALEdge.Leading,
withInset:kLabelHorizontalInsets)
self.tableView.autoPinEdgeToSuperviewEdge(
ALEdge.Trailing,
withInset:kLabelHorizontalInsets)
self.tableView.autoPinEdgeToSuperviewEdge(
ALEdge.Top,
withInset:kLabelHorizontalInsets)
self.tableView.autoPinEdgeToSuperviewEdge(
ALEdge.Bottom,
withInset:kLabelHorizontalInsets)
self.didUpdateConstraints = true
}
autoPinEdgeToSuperviewEdge
是一个辅助函数,最终构造一个NSLayoutConstraint
并将其添加到“超级视图”。
我有什么遗失的吗?