哪些约束相冲突?

问题描述:

我有一个UICollectionViewCell,不断给我一个自动布局约束冲突的错误。下面是它在调试器,它声称是相互矛盾的打印出来的约束:哪些约束相冲突?

(
"<NSAutoresizingMaskLayoutConstraint:0x10e47df70 h=--& v=--& UIView:0x1094594c0.width == 414 (active)>", 
"<NSAutoresizingMaskLayoutConstraint:0x10e47e110 h=--& v=--& UIView:0x1094594c0.height == 531 (active)>", 
"<NSLayoutConstraint:0x10947e7e0 UIButton:0x10947e410.height == 44 (active)>", 
"<NSLayoutConstraint:0x10e457fd0 UIImageView:0x10e44e960.height == 1.2*UIImageView:0x10e44e960.width (active)>", 
"<NSLayoutConstraint:0x109488520 V:|-(0)-[UIImageView:0x10e44e960] (active, names: '|':UIView:0x10947bfd0)>", 
"<NSLayoutConstraint:0x109488610 H:[UIImageView:0x10e44e960]-(0)-| (active, names: '|':UIView:0x10947bfd0)>", 
"<NSLayoutConstraint:0x109488700 H:|-(0)-[UIImageView:0x10e44e960] (active, names: '|':UIView:0x10947bfd0)>", 
"<NSLayoutConstraint:0x1094890c0 V:[UIImageView:0x10e44e960]-(8)-[UITextView:0x102940a00'Hey'] (active)>", 
"<NSLayoutConstraint:0x10948a520 V:[UIButton:0x10947e410]-(0)-| (active, names: '|':UIView:0x10947bfd0)>", 
"<NSLayoutConstraint:0x10948a820 V:[UITextView:0x102940a00'Hey']-(8)-[UIButton:0x10947e410] (active)>", 
"<NSLayoutConstraint:0x10948ae00 V:|-(5)-[UIView:0x10947bfd0] (active, names: '|':UIView:0x109452f60)>", 
"<NSLayoutConstraint:0x10948af40 H:|-(5)-[UIView:0x10947bfd0] (active, names: '|':UIView:0x109452f60)>", 
"<NSLayoutConstraint:0x10948b030 V:[UIView:0x10947bfd0]-(5)-| (active, names: '|':UIView:0x109452f60)>", 
"<NSLayoutConstraint:0x10948b120 H:[UIView:0x10947bfd0]-(5)-| (active, names: '|':UIView:0x109452f60)>", 
"<NSLayoutConstraint:0x10948b500 H:[UIView:0x109452f60]-(0)-| (active, names: '|':UIView:0x1094594c0)>", 
"<NSLayoutConstraint:0x10948b640 H:|-(0)-[UIView:0x109452f60] (active, names: '|':UIView:0x1094594c0)>", 
"<NSLayoutConstraint:0x10948b730 V:|-(0)-[UIView:0x109452f60] (active, names: '|':UIView:0x1094594c0)>", 
"<NSLayoutConstraint:0x10948b820 V:[UIView:0x109452f60]-(0)-| (active, names: '|':UIView:0x1094594c0)>" 
) 

然后,它试图通过打破了以下约束来解决这个问题:

<NSLayoutConstraint:0x10e457fd0 UIImageView:0x10e44e960.height == 1.2*UIImageView:0x10e44e960.width (active)> 

我有真正的麻烦试图确定什么是冲突,因为我的XIB不显示任何错误。

+1

我认为你一次给同一视图提供不变的高度和乘数高度。 –

+0

它看起来很难保持图像视图的纵横比,同时保持垂直间距在单元的固定高度内。 – Paulw11

您有一个约束将图像的高宽比设置为1.2,因此图像的高度必须是宽度大小的1.2倍。

但是,您还将图像限制为与其父视图相同的大小减去某些控件的某些固定空间。这个视图依次被设置为与其父视图相同的大小减去5个单位边界,并且该第三视图与具有414 x 531的固定大小的最外部视图大小相同。

我期望一次所有这些都是制定出来的,图像不能比宽度高1.2倍。

我会尝试删除图像的水平约束,以其父视图边缘,并添加一个新的水平中心它,看看是怎么回事。

+0

是的,我正在做的是错误地计算高度,所以它没有足够的空间让图像比它的宽度高1.2倍。调整,现在它的工作。谢谢! – Tometoyou