渲染视图中的自动布局不会更新其框架
Posted
技术标签:
【中文标题】渲染视图中的自动布局不会更新其框架【英文标题】:Auto Layout in rendered view doesn't update its frames 【发布时间】:2014-12-02 12:07:44 【问题描述】:我有一个从 xib 创建的视图,上面有各种标签。我没有将此视图添加到我的屏幕上,而是在上下文中渲染它以从中创建一个 UIImage,然后用户可以将其导出。
视图使用自动布局根据标签的内容重新定位标签。当我将此视图添加到超级视图并将其显示在屏幕上时,所有内容都已正确定位,但如果我只是在上下文中渲染它,则不会应用任何自动布局约束;所有标签的大小都与它们在原始 xib 中的位置完全相同。
如何让视图应用其约束?
我尝试了以下方法但没有成功:
view.translatesAutoresizingMaskIntoConstraints = FALSE;
[view setNeedsUpdateConstraints];
[view setNeedsLayout];
[view setNeedsDisplay];
[view layoutSubviews];
【问题讨论】:
【参考方案1】:只需使用layoutIfNeeded
[yourView layoutIfNeeded];
这将为您提供更新的框架。 translatesAutoresizingMaskIntoConstraints
用于释放/获取约束。您可以根据需要使用它。
【讨论】:
以上是关于渲染视图中的自动布局不会更新其框架的主要内容,如果未能解决你的问题,请参考以下文章