在集合视图单元格中,我只是在单元格中放置了一个图像和一个标签。
以下是我想要实现的目标:
图像位于顶部,标签位于底部。
图片和标签都占据了视图的整个宽度。
图像宽高比为3:4
标签占据图像下方的其余空间。
界面如下所示:
界面构建器没有抱怨任何问题。但是我在运行时得到了控制台日志,说有不满足的约束:
"<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;
}