[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]:约束
Posted
技术标签:
【中文标题】[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]:约束必须包含第一个布局项\'【英文标题】:[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: Constraint must contain a first layout item'[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]:约束必须包含第一个布局项' 【发布时间】:2013-12-14 00:22:43 【问题描述】:我在 viewdidload 方法中添加了这段代码来将垂直空间约束添加到最顶层的视图
基于苹果技术问答QA1797 防止状态栏覆盖您的视图
[NSLayoutConstraint constraintWithItem:self.toolbar1
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.topLayoutGuide
attribute:NSLayoutAttributeBaseline
multiplier:1.0
constant:0.0];
但它使应用程序崩溃并显示此错误 NSInvalidArgumentException',原因:'[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: Constraint must contain a first layout item'
我为什么会收到此错误以及如何解决此错误的任何线索。
感谢您的帮助。
【问题讨论】:
self.toolbar1 为零吗? 【参考方案1】:如果两个项目都为零,则会发生此错误。您的第一项“self.toolbar1”很可能是 nil。
【讨论】:
【参考方案2】:当您在 init 方法中设置 UI 代码时,当您的视图尚未创建时,就会发生这种情况。尝试将您的代码移动到 viewDidLoad 方法,看看它是否有效。
【讨论】:
以上是关于[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]:约束的主要内容,如果未能解决你的问题,请参考以下文章