我有一个从 xib 创建的 View ,上面有各种标签。我没有将此 View 添加到我的屏幕,而是在上下文中渲染它以从中创建一个 UIImage,然后用户可以将其导出。
View 使用自动布局根据标签的内容重新定位标签。当我将此 View 添加到 super View 并将其显示在屏幕上时,所有内容都已正确定位,但如果我只是在上下文中渲染它,则不会应用任何自动布局约束;所有标签的大小都与它们在原始 xib 中的位置完全相同。
如何使 View 应用其约束?
我尝试了以下方法但没有成功:
view.translatesAutoresizingMaskIntoConstraints = FALSE;
[view setNeedsUpdateConstraints];
[view setNeedsLayout];
[view setNeedsDisplay];
[view layoutSubviews];
Best Answer-推荐答案 strong>
只需使用 layoutIfNeeded
[yourView layoutIfNeeded];
这将为您提供更新的框架。 translatesAutoresizingMaskIntoConstraints 用于释放/获取约束。您可以根据需要使用它。
关于ios - 渲染 View 中的自动布局不会更新其框架,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/27249089/
|