在单击单元格之前,UITableView无法正确滚动到底部

时间:2017-10-19 11:52:24

标签: ios swift xcode uitableview layout

我有一个UITable视图,顶部有一个视图,然后是它下面的一些单元格。 这种层次结构

<tableview>
<view></view>
<cell></cell>
<cell></cell>
<cell></cell>
</tableview>

现在我将我的单元格作为动态高度,因此它们会根据标签高度进行扩展,现在这种方法在使用单行标签时效果很好,但是当我将标签设置为0(多行)时,我的tableview会反弹回来尝试滚动时的顶部,但是在此之后单击其中一个单元格时,它会滚动到底部单元格

enter image description here

我对swift相对较新,所以请记住这些答案

提前致谢

这是填充单元格的代码

   public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
    {

        myTableView.estimatedRowHeight = 50
        myTableView.rowHeight = UITableViewAutomaticDimension

        let cell = Bundle.main.loadNibNamed("ProfilerTableViewCell", owner: self, options: nil)?.first as! ProfilerTableViewCell

        cell.cellDescription.text = RatingsDataSet[n].descriptions[indexPath.row]
        if RatingsDataSet[n].valuesdata[indexPath.row][0] != "0" {
            cell.valueLabel.setTitle(RatingsDataSet[n].valuesdata[indexPath.row][0], for: .normal)
        }else{

            cell.valueLabel.setTitle("Not Set", for: .normal)
            cell.valueLabel.backgroundColor = UIColor.lightGray

        }

        return(cell)

    }

1 个答案:

答案 0 :(得分:2)

这两行:

   myTableView.estimatedRowHeight = 50
   myTableView.rowHeight = UITableViewAutomaticDimension

属于viewDidLoad(),而不是您拥有它们的地方。移动它们可能就是你需要做的就是纠正这个问题。