【发布时间】:2014-11-29 01:03:23
【问题描述】:
我在情节提要中有一个 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)-| (名称: '|':UIView:0x7fa4a0d73d40 )>
在 UIViewAlertForUnsatisfiableConstraints 创建一个符号断点 在调试器中捕获它。中的方法 UIView 上的 UIConstraintBasedLayoutDebugging 类别列于 也可能有帮助。
我尝试以各种方式(尝试偶数/奇数)更改前导/尾随值,但没有成功。这是什么原因造成的?
【问题讨论】:
-
它是否向您显示了约束列表并告诉您它试图打破哪个约束?如果是这样,请发布该信息。
-
更新问题,stackoverflow 的格式导致某些文本不出现
-
最后一个约束是说视图 UIView:0x7fa4a0d73d40,大概是你的单元格,宽度为 50。你在集合视图的数据源中为你的单元格返回什么大小?跨度>
-
奇怪的是,我没有在任何数据源方法中修改单元格的大小,我只在情节提要中设置了单元格的宽度/高度。我使用
self.collectionViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)将collectionView 添加到VC 中,如果这有影响的话。 -
我只实现
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
标签: ios objective-c swift storyboard