我有一个从xib创建的视图,上面有各种标签。我没有将此视图添加到我的屏幕,而是将其渲染到上下文中以创建一个UIImage,然后用户可以将其导出。
视图使用自动布局根据内容重新定位标签。当我将这个视图添加到超级视图并在屏幕上显示它时,一切都正确定位,但如果我只是在上下文中渲染它,那么就不会应用任何自动布局约束;所有标签的尺寸都与原始xib中的尺寸完全相同。
如何使视图应用其约束?
我尝试了以下但没有成功:
view.translatesAutoresizingMaskIntoConstraints = FALSE;
[view setNeedsUpdateConstraints];
[view setNeedsLayout];
[view setNeedsDisplay];
[view layoutSubviews];
答案 0 :(得分:1)
只需使用layoutIfNeeded
[yourView layoutIfNeeded];
这将为您提供更新的框架。 translatesAutoresizingMaskIntoConstraints
用于释放/抓住约束。您可以根据需要使用它。