我需要从Nib加载UIView并将其呈现为PDF(这是发票)。因此,我从笔尖加载了自定义UIView invoiceView并进行了设置(在其中设置了各种标签)。

设置标签后,我必须强制视图自行布局,以便各种UI元素能够正确调整自身的大小/位置。

致电:

invoiceView.updateConstraints()


什么也没做

致电:

invoiceView.layoutSubviews()


搞砸了一切。

这是我已经尝试过的:


invoiceView的设置框架(没有任何作用)。
设置框架并将invoiceView添加到当前视图层次结构:

self.view.addSubview(invoiceView)


正确设置所有内容。但是我不想这样做。我想强制视图正确地布局自身(使用布局约束)。我究竟做错了什么?我应该在invoiceView上调用什么方法,以使其正确布局而不将其添加到当前视图层次结构中?

PS:代码已从内存中键入。请忽略错别字。

最佳答案

尝试

invoiceView.setNeedsLayout()
invoiceView.layoutIfNeeded()

08-15 23:21