渲染视图中的自动布局不会更新其帧

时间:2014-12-02 12:07:45

标签: ios autolayout xib nslayoutconstraint

我有一个从xib创建的视图,上面有各种标签。我没有将此视图添加到我的屏幕,而是将其渲染到上下文中以创建一个UIImage,然后用户可以将其导出。

视图使用自动布局根据内容重新定位标签。当我将这个视图添加到超级视图并在屏幕上显示它时,一切都正确定位,但如果我只是在上下文中渲染它,那么就不会应用任何自动布局约束;所有标签的尺寸都与原始xib中的尺寸完全相同。

如何使视图应用其约束?

我尝试了以下但没有成功:

view.translatesAutoresizingMaskIntoConstraints = FALSE;
[view setNeedsUpdateConstraints];
[view setNeedsLayout];
[view setNeedsDisplay];
[view layoutSubviews];

1 个答案:

答案 0 :(得分:1)

只需使用layoutIfNeeded

即可
[yourView layoutIfNeeded];

这将为您提供更新的框架。 translatesAutoresizingMaskIntoConstraints用于释放/抓住约束。您可以根据需要使用它。