Autolayout - 无法同时满足约束

时间:2016-11-15 01:15:43

标签: ios

在集合视图单元格中,我只是在单元格中放置了一个图像和一个标签。

以下是我想要实现的目标:

  • 图像位于顶部,标签位于底部。

  • 图片和标签都占据了视图的整个宽度。

  • 图像宽高比为3:4

  • 标签占据图像下方的其余空间。

界面如下所示:

enter image description here

图像视图的约束是: enter image description here

标签的限制是: enter image description here

界面构建器没有抱怨任何问题。但是我在运行时得到了控制台日志,说有不满足的约束:

    "<NSAutoresizingMaskLayoutConstraint:0x17429a220 h=--& v=--& UIView:0x14ddaf690.width == 335   (active)>",
    "<NSAutoresizingMaskLayoutConstraint:0x17429a2c0 h=--& v=--& UIView:0x14ddaf690.height == 278   (active)>",
    "<NSLayoutConstraint:0x174299460 UIImageView:0x14ddaf830.width == 0.75*UIImageView:0x14ddaf830.height   (active)>",
    "<NSLayoutConstraint:0x174299910 V:|-(0)-[UIImageView:0x14ddaf830]   (active, names: '|':UIView:0x14ddaf690 )>",
    "<NSLayoutConstraint:0x174299960 H:[UIImageView:0x14ddaf830]-(0)-|   (active, names: '|':UIView:0x14ddaf690 )>",
    "<NSLayoutConstraint:0x1742999b0 H:|-(0)-[UIImageView:0x14ddaf830]   (active, names: '|':UIView:0x14ddaf690 )>",
    "<NSLayoutConstraint:0x174299aa0 V:[UIImageView:0x14ddaf830]-(0)-[UILabel:0x14ddafa10'Dress\n$299.99']   (active)>",
    "<NSLayoutConstraint:0x174299b90 V:[UILabel:0x14ddafa10'Dress\n$299.99']-(0)-|   (active, names: '|':UIView:0x14ddaf690 )>"

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x174299460 UIImageView:0x14ddaf830.width == 0.75*UIImageView:0x14ddaf830.height   (active)>

无法弄清楚哪里有冲突。

有人可以帮忙吗?感谢。

解决

调试之后。发现此问题的原因是单元格的contentView的自动调整不能正常工作。因此,电池的尺寸比小于3:4。添加以下代码seg解决了这个问题。

- (void)awakeFromNib {
    [super awakeFromNib];
    // Initialization code
    self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}

0 个答案:

没有答案
相关问题