Высота UITableViewCell не будет обновляться после добавления подпредставления - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть UITableViewCell, к которому я добавляю подпредставление. Однако после того, как я добавлю подпредставление, высота ячейки все еще сообщает о старой высоте до того, как я добавил подпредставление.

    // Setting up using rx, calling cell.setup()
    viewModel
        .map { $0.viewModels }
        .flatMap(ignoreNil)
        .bind(to: tableView.rx.items(cellIdentifier: "TableViewCell", cellType: TableViewCell.self)) { (row, viewModel, cell) in
            cell.viewModel = viewModel
            cell.setup()
        }
        .disposed(by: disposeBag)

// Cell setup in my UITableViewCell class
private func setup() {
     let threeTileView = TileView(frame: bodyView.bounds)

      // Bodyview is a view within the cell
      bodyView.addSubview(threeTileView)
    }

Тело также исчезает при прокрутке вне экрана, потому что я предполагаю, что есть некоторая проблема с макетом при добавлении подпредставления в мою ячейку. Моя таблица не распознает представление, добавленное в bodyView, и регистрирует только другие представления в моей ячейке

1 Ответ

0 голосов
/ 04 сентября 2018

Здесь

 let threeTileView = TileView(frame: bodyView.bounds)

frame-layout не будет обновлять высоту tableCell, для этого вы должны использовать auto-layout, потому что границы bodyView еще не рассчитаны правильно

//

bodyView.addSubview(threeTileView)
threeTileView.translatesAutoresizingMaskIntoConstraints = false   
NSLayoutConstraint.activate([ 
    threeTileView.leadingAnchor.constraint(equalTo: bodyView.leadingAnchor),
    threeTileView.trailingAnchor.constraint(equalTo: bodyView.trailingAnchor),
    threeTileView.topAnchor.constraint(equalTo: bodyView.topAnchor),
    threeTileView.bottomAnchor.constraint(equalTo: bodyView.bottomAnchor) 
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...