2012-10-30 54 views
2

我试图让我的容器视图正常工作。问题是,当将乘数变为不同于0.5的东西时我得到:在constraintWithItem中更改乘数时无法满足约束条件

无法同时满足约束条件。

例如,如果我改变* c2 multipier为0.4和* c8为0.6我得到上述错误。但是如果我改回0.5,那一切都好。我在这里做错了什么? 我得到了一些更多的限制,但他们是垂直布局,所以我不认为他们是问题。

NSLayoutConstraint *c1 = [NSLayoutConstraint constraintWithItem: contentView 
                 attribute: NSLayoutAttributeLeft 
                 relatedBy: NSLayoutRelationEqual 
                 toItem:self.view 
                 attribute:NSLayoutAttributeLeft 
                multiplier:1.0 
                 constant:0.0]; 


NSLayoutConstraint *c2 = [NSLayoutConstraint constraintWithItem: contentView 
                 attribute: NSLayoutAttributeWidth 
                 relatedBy: NSLayoutRelationEqual 
                 toItem:self.view 
                 attribute:NSLayoutAttributeWidth 
                multiplier:.4 
                 constant:0.0]; 


// detailView 

NSLayoutConstraint *c7 = [NSLayoutConstraint constraintWithItem: detailView 
                 attribute: NSLayoutAttributeRight 
                 relatedBy: NSLayoutRelationEqual 
                 toItem:self.view 
                 attribute:NSLayoutAttributeRight 
                multiplier:1.0 
                 constant:0.0]; 


NSLayoutConstraint *c8 = [NSLayoutConstraint constraintWithItem: detailView 
                 attribute: NSLayoutAttributeWidth 
                 relatedBy: NSLayoutRelationEqual 
                 toItem:self.view 
                 attribute:NSLayoutAttributeWidth 
                multiplier:.6 
                 constant:0.0]; 
+0

可以在那里创建'detailView'和'contentView'您添加的代码? – Tobi

回答

2

我使用relatedBy取得了成功:NSLayoutRelationGreaterThanOrEqual。

对于如:

 [self.view addConstraint: 

      [ 

       NSLayoutConstraint 

       constraintWithItem: _accountRegisteredDateLabel 
       attribute:NSLayoutAttributeWidth 
       relatedBy:NSLayoutRelationGreaterThanOrEqual 
       toItem:self.view 
       attribute:NSLayoutAttributeWidth 
       multiplier:.30 
       constant:0 


       ] 

     ]; 
+0

谢谢我以为我在这一个疯了。 – elliotrock

0

我以为我会回答我自己的问题。 我最终设置了一个视图乘数为0.609375,另一个为0.390625 这对我来说很好!

为什么它以0.4和0.6失败是因为它没有与总空间加起来。 我的两个视图将彼此相邻,总空间为1024px(ipad)。

0.4 * 1024 = 409,6

0.6 * 1024 = 614,4

我的理解是,不知何故constraintWithItem方法不关心余,并抛出一个错误。

所以才想出了一个数字,不给你任何的余

0.390625 * 1024 = 400

0.609375 * 1024 = 624

相关问题