"API error: (null) returned 0 width, assuming UIViewNoIntrinsicMetric" in Xcode 9 beta
"API error: (null) returned 0 width, assuming UIViewNoIntrinsicMetric" in Xcode 9 beta
我正在处理几个项目,但都发生了同样的错误。
我仍然无法弄清楚是什么原因造成的。是我的代码还是 Xcode 9 beta 的问题?
MyApp[22724:4000717] API error: (null) returned 0 width, assuming UIViewNoIntrinsicMetric
@rmaddy 正确链接到另一个 SO 答案但是还有其他与自动布局实践相关的可能性。
该消息也可能与您的项目中定义的自动布局实现和唯一约束有关。使用真机好像一般不会出现这个提示
UIKit 框架 -> UIView API 全局变量 UIViewNoIntrinsicMetric
UIViewNoIntrinsicMetric
给定数值视图缺少固有指标 属性。
UIView实现实践
每个 UIView 子类都应该实现 intrinsicContentSize 和 return 它认为适合的大小。例如:
- 如果您知道 UIView 的宽度,您可以使用 return CGSizeMake(200, 50)。
- 如果您不知道视图的宽度,您可以使用
UIViewNoIntrinsicMetric
而不是宽度。 return CGSizeMake(UIViewNoIntrinsicMetric, 50)
updateConstraints
的 UIView 基本实现将调用 intrinsicContentSize 并将使用从中获取的内容大小 return 来向 UIView 添加约束。
UIView API 属性 intrinsicContentSize
intrinsicContentSize
接收视图的自然大小,仅考虑视图本身的属性。
自定义视图通常会显示布局系统不知道的内容。设置此 属性 允许自定义视图根据其内容向布局系统传达它希望的大小。这个固有尺寸必须独立于内容框架,因为没有办法根据变化的高度动态地将变化的宽度传达给布局系统,例如。
如果自定义视图没有给定维度的固有大小,它可以使用
UIViewNoIntrinsicMetric
对于那个维度。
结论
Xcode 错误:
returned 0 width, assuming UIViewNoIntrinsicMetric
因此我们可以认为 Xcode 假设 UIViewNoIntrinsicMetric 大小,因为 0 的宽度大小是由您的某些 UIView return 编辑的项目。
如果在真实设备上部署时您仍然收到消息,那么我会特别注意您的布局限制。
我正在处理几个项目,但都发生了同样的错误。
我仍然无法弄清楚是什么原因造成的。是我的代码还是 Xcode 9 beta 的问题?
MyApp[22724:4000717] API error: (null) returned 0 width, assuming UIViewNoIntrinsicMetric
@rmaddy 正确链接到另一个 SO 答案但是还有其他与自动布局实践相关的可能性。
该消息也可能与您的项目中定义的自动布局实现和唯一约束有关。使用真机好像一般不会出现这个提示
UIKit 框架 -> UIView API 全局变量 UIViewNoIntrinsicMetric
UIViewNoIntrinsicMetric
给定数值视图缺少固有指标 属性。
UIView实现实践
每个 UIView 子类都应该实现 intrinsicContentSize 和 return 它认为适合的大小。例如:
- 如果您知道 UIView 的宽度,您可以使用 return CGSizeMake(200, 50)。
- 如果您不知道视图的宽度,您可以使用
UIViewNoIntrinsicMetric
而不是宽度。return CGSizeMake(UIViewNoIntrinsicMetric, 50)
updateConstraints
的 UIView 基本实现将调用 intrinsicContentSize 并将使用从中获取的内容大小 return 来向 UIView 添加约束。
UIView API 属性 intrinsicContentSize
intrinsicContentSize
接收视图的自然大小,仅考虑视图本身的属性。
自定义视图通常会显示布局系统不知道的内容。设置此 属性 允许自定义视图根据其内容向布局系统传达它希望的大小。这个固有尺寸必须独立于内容框架,因为没有办法根据变化的高度动态地将变化的宽度传达给布局系统,例如。
如果自定义视图没有给定维度的固有大小,它可以使用
UIViewNoIntrinsicMetric
对于那个维度。
结论
Xcode 错误:
returned 0 width, assuming UIViewNoIntrinsicMetric
因此我们可以认为 Xcode 假设 UIViewNoIntrinsicMetric 大小,因为 0 的宽度大小是由您的某些 UIView return 编辑的项目。
如果在真实设备上部署时您仍然收到消息,那么我会特别注意您的布局限制。