使用动态大小的单元格进行Autolayout约束

时间:2016-05-24 21:36:56

标签: ios swift uitableview autolayout

我需要创建一个包含动态大小单元格的tableView。为此,我正在使用

    func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

在我的viewController中。我还为我的单元格创建了一个自定义类。

实际上,它有效,我有动态细胞高度,但我希望在我的细胞中有几个子视图。例如,我需要在这里添加背景视图。

class myCustomTableViewCell: UITableViewCell {
...
self.backView = UIView()
self.backView.backgroundColor = UIColor.blueColor()
self.backView.translatesAutoresizingMaskIntoConstraints = false
self.contentView.addSubview(self.backView)

//1st constraint
NSLayoutConstraint(item: backView, attribute: .Bottom, relatedBy: NSLayoutRelation.Equal, toItem: self.contentView, attribute: NSLayoutAttribute.BottomMargin, multiplier: 1.0, constant: 5.0).active = true
//2nd constraint
NSLayoutConstraint(item: backView, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: self.contentView, attribute: NSLayoutAttribute.TopMargin, multiplier: 1.0, constant: 5.0).active = true

问题是,它不起作用。 如果我使用这两个约束,我的单元格高度不再是动态的,它们都具有相同的高度。

如果我只使用其中一个约束条件,则单元格高度正常,但我收到此错误:

  

仅警告一次:检测到约束模糊地建议tableview单元格内容视图的高度为零的情况。我们正在考虑无意中崩溃并使用标准高度。

在这两种情况下,我的视图(self.backView)都不可见。

你能告诉我出了什么问题吗?

0 个答案:

没有答案