【问题标题】: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];

【问题讨论】:

    标签: ios autolayout xib nslayoutconstraint


    【解决方案1】:

    只需使用layoutIfNeeded

    [yourView layoutIfNeeded];
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多