我已经为我的单元格添加了2个标签并使用snapkit设置了这些约束,问题是我无法正确扩展单元格,它保持默认高度:
List<MNISTSample> trainSamples = MNISTSamples.stream(
trainLabelPath,
trainImagePath
).limit(TRAIN_LIMIT).collect(Collectors.toList());
List<MNISTSample> testSamples = MNISTSamples.stream(
testLabelPath,
testImagePath
).limit(TEST_LIMIT).collect(Collectors.toList());
我可以看到四个边缘的映射,但是我知道高度并不是这些边缘所暗示的,当内容是天生的,动态的,并且可以是各种高度时,如何应用高度......
标签的设置如下所示:
titleLabel.snp.makeConstraints { (make) -> Void in
make.top.equalTo(contentView.snp.top)
make.bottom.equalTo(descriptionLabel.snp.top)
make.left.equalTo(contentView.snp.left)
make.right.equalTo(contentView.snp.right)
}
descriptionLabel.snp.makeConstraints { (make) -> Void in
make.top.equalTo(titleLabel.snp.bottom)
make.bottom.equalTo(contentView.snp.bottom)
make.left.equalTo(contentView.snp.left)
make.right.equalTo(contentView.snp.right)
}
答案 0 :(得分:1)
为表格视图指定estimatedRowHeight
,并将其rowHeight
设置为UITableViewAutomaticDimension。现在细胞将自我调整大小。好吧,如果标签被内容视图的所有四边固定,并且单元格是自我调整大小,那么您需要做的就是:标签将自动更改其高度以适应其文本,单元格将自动更改大小以容纳标签。
答案 1 :(得分:0)
首先,我认为您应该使用子类化的UITableViewCell类初始化方法将子视图添加到contentView中。
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.contentView.addSubview(titleLabel)
self.contentView.addSubview(descriptionLabel)
}
第二,请确保在viewDidLoad方法(可能在ViewController中)中添加了以下两行:
tableView.estimatedRowHeight = 44.0
tableView.rowHeight = UITableView.automaticDimension
当然,您应该更改估计行高度以适应您的需求。
还有一件值得一提的事情-您可以更轻松地创建这些约束(使用SnapKit的强大功能):
titleLabel.snp.makeConstraints { (make) -> Void in
make.top.left.right.equalTo(contentView)
}
descriptionLabel.snp.makeConstraints { (make) -> Void in
make.top.equalTo(titleLabel.snp.bottom)
make.bottom.left.right.equalTo(contentView)
}