UITableView上的某些单元格不会自动调整大小

时间:2017-07-25 02:09:23

标签: ios swift uitableview

我遇到了一个非常奇怪的现象。我正在我的tableview上使用AutomaticDimension函数,并且由于一些奇怪的原因它可以在我的所有细胞上工作,除了3.我的所有细胞都有完全相同的约束,这是奇怪的部分。我已经尝试更改单元格上的约束,但似乎它们被忽略了。任何见解都会很棒。我确保在viewdidload中调用自动维度函数。

override func viewDidLoad() {
    super.viewDidLoad()


    self.TableView.dataSource = self

    TableView.estimatedRowHeight = 200.0
    TableView.rowHeight = UITableViewAutomaticDimension
}

以下是其中一个不起作用的类:

class foursleepCell: UITableViewCell {
@IBOutlet weak var foursleepLabel: UILabel!
@IBOutlet weak var foursleepScale: UISegmentedControl!

var delegate: foursleepCellToController?

@IBAction func foursleepValueChanged(_ sender: UISegmentedControl) {
    if let delegate = delegate {
        let indexPath = delegate.indexOfChangedfoursleepCell(at: self)
        delegate.savefoursleepCellResponse(at: indexPath, response: foursleepScale.selectedSegmentIndex)
    }
}
}

附有约束和输出的图像:

Label Constraints

Segmented Control Constraints

Actual Output

Working Output

1 个答案:

答案 0 :(得分:0)

我认为您尝试将单元格设置为自动调整大小的方式没有任何问题,只是事实上调整大小所需的顶部到底部约束不存在在运行时。显然,这有时会在Xcode中发生 - 尝试创建一个新的表视图单元格并从头开始再次设置所有视图和约束。将表视图单元格复制并粘贴到新单元格中并从副本中复制并没有为我修复它 - 它的行为完全相同。但是把它设置得很新就行了。