2012-10-30 72 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

相關問題