使用UITableViewCell发生奇怪的AutoLayout行为或错误

时间:2016-09-15 03:56:12

标签: ios uitableview autolayout

let cotnainer = UIView()
let item = UIView()
cotnainer.addSubview(item)
item.snp_makeConstraints { (make) in
    make.height.equalTo(item.snp_width)
    make.leading.trailing.equalTo(cotnainer).inset(8)
    make.top.bottom.equalTo(cotnainer)
}
print(cotnainer.systemLayoutSizeFittingSize(CGSize(width: 375, height: 0), withHorizontalFittingPriority: 1000, verticalFittingPriority: 50))

let cellContainer = UITableViewCell()
let cellItem = UIView()
cellContainer.contentView.addSubview(cellItem)
cellItem.snp_makeConstraints { (make) in
    make.height.equalTo(cellItem.snp_width)
    make.leading.trailing.equalTo(cellContainer.contentView).inset(8)
    make.top.bottom.equalTo(cellContainer.contentView)
}
print(cellContainer.systemLayoutSizeFittingSize(CGSize(width: 375, height: 0), withHorizontalFittingPriority: 1000, verticalFittingPriority: 50))
print(cellContainer.contentView.systemLayoutSizeFittingSize(CGSize(width: 375, height: 0), withHorizontalFittingPriority: 1000, verticalFittingPriority: 50))

我正在使用SnapKit来制作约束,并按照以下结果返回结果。

(375.0, 359.0)
(375.0, 359.333333333333)
(375.0, 359.0)

我不知道为什么第二个结果会有额外的0.3333333,这使我的单元格约束有错误。这是一个我没有正确设置的错误。

1 个答案:

答案 0 :(得分:0)

好的,我打印UITableViewCell的子视图,发现它有一个分隔符视图,这是造成这种奇怪行为的原因。 设置cellContainer.separatorInset = UIEdgeInsetsZero修复问题