bug1:频繁显示约束冲突
1> 源代码
footerView.snp_makeConstraints { (make) -> Void in
// 防止cell重用
self.bottomConstraint = make.top.equalTo(retweetView.snp_bottom).constraint
make.left.equalTo(contentView.snp_left)
make.right.equalTo(contentView.snp_right)
make.width.equalTo(44)
}
2> 在滚动屏幕时频繁报的错误
3> 原因
约束最后一行应该是高度等于44,而不是宽度等于44,宽度根据左右两边的约束已经可以确定了.所以再次设置宽度就约束冲突了.
4> bug解决
将width改为height后就可以了
bug2:显示的内容重叠到一起
1> 错误的源代码
没有错误提示:
if originalModel?.model?.pic_urls?.count > 0{
// 显示pictureView
pictureView.hidden = false
self.snp_updateConstraints(closure: { (make) -> Void in
self.bottomConstranit = make.bottom.equalTo(pictureView.snp_bottom).constraint
})
// 把配图视图的数据传递过来
pictureView.pic_urls = originalModel?.model?.pic_urls
}else{
// 不显示pictureView
pictureView.hidden = true
self.snp_updateConstraints(closure: { (make) -> Void in
self.bottomConstranit = make.bottom.equalTo(self.snp_bottom).constraint
})
}
2> 错误截图
3> 原因
很明显底部约束设置错误;
有图片时显示正常,没图片时转发微博的内容全都跑到cell顶部了.说明没图片时底部约束设置错了.
4> 解决
将下述代码中的self改为contentLabel后即可解决
self.bottomConstranit = make.bottom.equalTo(self.snp_bottom).constraint
self.bottomConstranit = make.bottom.equalTo(contentLabel.snp_bottom).constraint
bug3: 图片有的显示,有的不显示,且collectionView中第一行的图片都不显示
1> 错误的源代码
iconView.snp_makeConstraints { (make) -> Void in
make.left.equalTo(contentView.snp_left)
make.top.equalTo(contentView.snp_right)
make.width.equalTo(contentView.snp_width)
make.height.equalTo(contentView.snp_height)
}
2> 错误截图:
3> 错误原因
依然是图片框的约束设置错误;很明显源代码中第二行设置顶部约束时错设置成等于右侧了.
4> bug解决
将第二行代码最后的right改为top即可
综上:三次错误均为纯代码给控件添加约束时不细心导致的.约束错一点,显示出来的结果都偏差很远,所以以后给控件添加约束时一定要小心了.