UIビューをテーブルビューセルのコンテンツビューにロードしていますが、テーブルビューをスクロールすると1つのセルしか表示されません。各セルの正しいビューがロードされますが、1つしかロードされず、新しいセルが下から表示されると消えます。すべてのデータは、関数makeTableViewRowView
(uiviewをポピュレートする文字列の配列)を介してローカルにロードされます。TableViewは、スクロールしながら1つのセルの内容をロードするだけです。
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
}
'tableViewRow'とは何ですか? –
@ Mr.BistaそれはUIViewの原因を保持する単なるプロパティです。なぜなら、 'tableViewRow'は一度しか初期化されていないため、UIView –
が返されます。なぜなら、最後のセルでの存在が –