2016-11-25 2 views
0

Я загружаю UIViews в представление содержимого ячеек таблицы, но когда я просматриваю свой рабочий стол, только одна ячейка загружает его представление. Его загрузка правильного представления для каждой ячейки, но она только загружает одну, а затем исчезает, когда новая ячейка появляется снизу. Все данные загружаются локально с помощью функции makeTableViewRowView (массив строк, который заполняет uiview).TableView загружает только содержимое одной ячейки при прокрутке

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

Что такое 'tableViewRow'? –

+0

@ Mr.Bista Это просто свойство, которое содержит причину UIView. MakeTableViewRowView возвращает UIView –

+0

, потому что 'tableViewRow' инициализируется только один раз, поэтому его присутствие в последней ячейке только –

ответ

0

сделать пользовательские ячейки в интерфейсе строителя и deque его. И внести изменения по требованию для этой ячейки в cellForRowAtIndexPath! Потому что cellForRowAtIndexPath будет вызван, когда ваша ячейка будет deque, я имею в виду, что ячейка будет повторно использована! Таким образом, создавая представление в cellforrow и добавляйте его как subview, это нехорошее решение, вы можете добавить его непосредственно из конструктора интерфейса и можете манипулировать им в cellforrow согласно требованию!

+0

Хорошая мысль, но я не использую IB для этого проекта. Ответ Хамзы сработал для меня. –

Смежные вопросы