我在代碼中添加了一個高度佈局約束到我的UICollectionViewCell子類,該子類根據文本的長度設置高度。 See this question.我可以發佈代碼的高度計算,但我不認爲這是問題,因爲它適用於前4個單元格,但然後在第5個單元格上崩潰。Autolayout由於額外的高度限制而崩潰
@property (weak, nonatomic) UILabel *name;
這是我如何創建約束。
NSLayoutConstraint *labelHeightContraint = [NSLayoutConstraint constraintWithItem:self.name attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:labelSize.height];
[self.name addConstraint:labelHeightContraint];
這是我得到的錯誤。
Unable to simultaneously satisfy constraints.
(
"<NSLayoutConstraint:0x9ff8770 V:[UILabel:0x9ff72d0(60.843)]>",
"<NSLayoutConstraint:0x9feb590 V:[UILabel:0x9ff72d0(40.562)]>"
)
看來我有2個身高限制,這對我沒有意義。在界面構建中我沒有高度限制(請參見屏幕截圖)。
在崩潰前顯示約束條件顯示高度約束條件。
<__NSArrayM 0x9eb0a00>(
<NSLayoutConstraint:0x9ea1670 V:[UILabel:0x9eb2e30(60.843)]>,
<NSContentSizeLayoutConstraint:0x9fa0580 H:[UILabel:0x9eb2e30(72)] Hug:251 CompressionResistance:750>,
<NSContentSizeLayoutConstraint:0x9fa7bf0 V:[UILabel:0x9eb2e30(61)] Hug:251 CompressionResistance:750>
)
我計算的約束是
<NSLayoutConstraint:0x9ea9b50 V:[UILabel:0x9eb2e30(40.562)]>
你的答案應該包括一些鏈接幫助或代碼,甚至一些解釋。這不能被當作答案 –
這個簡單的與UILabel的'height'有衝突的'CompressionResistance'。這位作者需要玩冗餘 – Bimawa
我以前試過這個,它停止了崩潰但沒有解決問題。 – Kevin