ios - 从 Nib 加载 UIView,手动调用 autolayout

标签 ios uiview autolayout nib

我需要从 Nib 加载 UIView 并将其渲染为 PDF(它是发票)。因此,我从 Nib 加载自定义 UIView invoiceView 并对其进行设置(在其中设置各种标签)。

设置标签后,我必须强制 View 自行布局,以便各种 UI 元素正确调整大小/重新定位。

调用:

invoiceView.updateConstraints()

什么都不做。

调用:

invoiceView.layoutSubviews()

把一切都搞砸了。

这是我已经尝试过的:

  1. 设置invoiceView的框架(没有任何效果)。
  2. 设置框架并将 invoiceView 添加到当前 View 层次结构:

    self.view.addSubview(invoiceView)

正确设置一切。但是我不想这样做。我想强制 View 正确布局自身(使用布局约束)。我究竟做错了什么?我应该在 invoiceView 上调用哪些方法,以便正确布局而不将其添加到当前 View 层次结构?

PS:代码是靠内存打出来的。请忽略错别字。

最佳答案

尝试

invoiceView.setNeedsLayout()
invoiceView.layoutIfNeeded()

关于ios - 从 Nib 加载 UIView,手动调用 autolayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28631677/

相关文章:

ios - 收据日期与沙箱持续时间不匹配

objective-c - Objective-C 运行时调用的方法

ios - 检查标签中的字符串是否被截断

ios - CGbitmapcontext 和 alpha 的问题

ios - NSLayoutConstraint 冲突。 UIView-Encapsulated-Layout-Height

ios - 使用自动布局支持不同 iPhone 尺寸的问题(包括图表)

iOS StoryBoard 自定义字体可变数组不断增长

iOS - ScrollView 上的多种背景颜色

ios - 在 Swift 中使用 NSLayoutConstraint 将多个 UIView 放置在视觉时间轴上

ios - 在 uitableview 之上动画 View