[objective-c]约束子元素 UIViewLabel UIViewController.UIView 为什么把错误"无效配对的布局属性"?

标签: ios Objective-C
发布时间: 2016/10/2 13:18:59
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我试图定位标签,标签的顶部是 2/3 的方式下 UIViewController。 所以我写了这种限制,但是它给了我下面的一些错误。

NSLayoutConstraint *labelTopConstraint = [NSLayoutConstraint constraintWithItem:self.myLabel
                                         attribute:NSLayoutAttributeTop
                                         relatedBy:NSLayoutRelationGreaterThanOrEqual
                                            toItem:self.view
                                         attribute:NSLayoutAttributeHeight
                                        multiplier:0.66
                                          constant:0];

错误︰

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '*** +[NSLayoutConstraint 
constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: 
Invalid pairing of layout attributes'

解决方法 1:

您可以添加此约束︰

[self.view addConstraints:
   [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(>=topSpace)-[topLabel]"
                                           options:0
                                           metrics:@{@"topSpace":@(self.view.bounds.size.height*0.66f)}
                                             views:NSDictionaryOfVariableBindings(topLabel)]];

我建议你把这个叫做 viewDidAppear: 或后因为在那之前的高度将是零。

赞助商