我在故事板中有一个UICollectionViewCell,里面有一个UIImageView。
UICollectionViewCell size is width: 189, height: 239
。 ImageView具有以下约束:
Trailing Space to cell = 31
Leading Space to cell = 31
Bottom Space to cell = 25
Top Space to cell = 31
运行时收到以下错误:
2014-11-28 19:53:33.934 AppName [1585:35698]无法 同时满足约束。可能至少有一个 以下列表中的约束是您不想要的。试试这个:(1) 看看每个约束,并试着找出你不期望的; (2)找到添加了不需要的约束或约束的代码 并修复它。 (注意:如果您正在看到 您不了解的NSAutoresizingMaskLayoutConstraints,请参阅 到UIView属性的文档 translatesAutoresizingMaskIntoConstraints)(
"<NSLayoutConstraint:0x7fa4a0d75220 H:[UIImageView:0x7fa4a0d743e0]-(31)-| (Names: '|':UIView:0x7fa4a0d73d40 )>",
"<NSLayoutConstraint:0x7fa4a0d752c0 H:|-(32)-[UIImageView:0x7fa4a0d743e0] (Names: '|':UIView:0x7fa4a0d73d40 )>",
"<NSAutoresizingMaskLayoutConstraint:0x7fa4a0d567a0 h=--& v=--& H:[UIView:0x7fa4a0d73d40(50)]>" )
将尝试通过违反约束来恢复 NSLayoutConstraint:0x7fa4a0d75220 H:[UIImageView的:0x7fa4a0d743e0] - (31) - | (名称: &#39; |&#39;:UIView:0x7fa4a0d73d40)&gt;
在UIViewAlertForUnsatisfiableConstraints处创建一个符号断点 在调试器中捕获它。方法中的 在UIView中列出的UIConstraintBasedLayoutDebugging类别 也可能会有帮助。
我尝试以各种方式更改前导/尾随值(尝试偶数/奇数)但没有成功。造成这种情况的原因是什么?
答案 0 :(得分:6)
这是iOS 8中的已知错误(请参阅此帖子,Autoresizing issue of UICollectionViewCell contentView's frame in Storyboard prototype cell (Xcode 6, iOS 8 SDK) happens when running on iOS 7 only)。单元格是您在故事板中设置的正确大小,但单元格的内容视图大小保持在50x50,这就是您获得约束错误的原因。在cellForItemAtIndexPath:,
中创建单元格后,可以通过添加此行来修复它cell.contentView.frame = cell.bounds