TableView仅滚动时加载一个单元格的内容

时间:2016-11-25 04:46:51

标签: ios swift uitableview uiview

我将UIViews加载到我的tableview单元格内容视图中,但是当我滚动浏览我的tableview时,只有一个单元格加载其视图。它为每个单元格加载正确的视图,但它只加载一个,然后从底部出现一个新单元格后消失。所有数据都通过函数makeTableViewRowView(填充uiview的字符串数组)在本地加载。

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: expenseCell, for: indexPath)
        tableViewRow = makeTableViewRowView(indexPath: indexPath)
        tableViewRow.translatesAutoresizingMaskIntoConstraints = false
        cell.contentView.addSubview(tableViewRow)
        cell.selectionStyle = .none

        let margins = cell.contentView.layoutMarginsGuide
        tableViewRow.centerYAnchor.constraint(equalTo: margins.centerYAnchor).isActive = true
        tableViewRow.leadingAnchor.constraint(equalTo: margins.leadingAnchor).isActive = true
        tableViewRow.trailingAnchor.constraint(equalTo: margins.trailingAnchor).isActive = true
        tableViewRow.heightAnchor.constraint(equalToConstant: 40).isActive = true
        return cell
    }

broken tableView

1 个答案:

答案 0 :(得分:0)

在界面构建器和deque中创建自定义单元格。并根据cellForRowAtIndexPath中该单元格的要求进行更改!因为cellForRowAtIndexPath将在您的单元格为deque时被调用,我的意思是单元格将被重用!因此,在cellforrow中创建视图并将其添加为子视图并不是一个好的解决方案,您可以直接从界面构建器添加,并可以根据需要在cellforrow中对其进行操作!