在UITableView中插入部分时,UIView-Encapsulated-Layout-Width有问题

时间:2019-03-08 07:10:57

标签: ios swift uitableview

我知道这是一个已知问题,已经讨论了很多。但是,我已经解决了很多这些问题,这些解决方案都无法解决我的问题。另外,我完全在代码中工作,所以没有故事板。

到目前为止我已经读过:

我的情况如下。我正在使用带有部分的UITableView。每个部分都有一个headerView和footerView。在此之上,整个表还具有headerView和footerView。因此,有一个通用的页眉和页脚,以及每个节的页眉和页脚。整个UITableView的标题显示标题,页脚显示“添加部分”和“发布”按钮。部分的标题显示该部分的标题,而部分的页脚显示“添加行”按钮。

设置估计的身高。我曾经,但是我删除了它们,因为我不需要估计,我知道它的价值(它不是动态的)-但是,删除或添加它们似乎不会影响我的问题。因此,没有estimatedHeightForFooterInSectionestimatedHeightForHeaderInSectionestimatedHeightForRowAt。我按需添加了约束,并且一切正常,在使用UIViewController打开UITableView时没有错误。但是,当我插入新的时,会出现Encapsulated-Height或Encapsulated-Width错误(插入新行时不会发生):

"<NSLayoutConstraint:0x7ff8557ce1a0 H:|-(15.9574)-[Project.ShadowView:0x7ff8557c8ba0]   (active, names: '|':_TtCC5Project26TableViewController14sectionFooter:0x7ff8557c88e0 )>",
"<NSLayoutConstraint:0x7ff8557ce660 Project.ShadowView:0x7ff8557c8ba0.trailing == _TtCC5Project26TableViewController14sectionFooter:0x7ff8557c88e0.trailing - 15.9574   (active)>",
"<NSLayoutConstraint:0x7ff851ea1510 'UIView-Encapsulated-Layout-Width' _TtCC5Project26TableViewController14sectionFooter:0x7ff8557c88e0.width == 0   (active)>"

它有时也会以高度而不是宽度(.height == 0)出现。 ShadowView引用了我的footerView(这是一个自定义视图,后面有阴影)。此视图的约束为(normalSpacing是根据屏幕宽度确定的变量):

footerView.topAnchor.constraint(equalTo: topAnchor).isActive = true
footerView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -normalSpacing).isActive = true
footerView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: normalSpacing).isActive = true
footerView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -normalSpacing).isActive = true

重要提示:我的视图没有损坏,一切都按预期工作,错误仅显示在控制台中,因此我想对其进行修复。那么,这是什么呢,它到底来自哪里:我该如何解决?

0 个答案:

没有答案