Учтите, что в вашем табличном представлении нет верхнего и нижнего колонтитула.
- Создайте 3 типа ячеек, т.е. ячейку ответа, ячейку вопроса и ячейку решения.
- Создайте свои ячейки в соответствии с требованиями вашего пользовательского интерфейса.
- Создание источника данных для ячейки вопроса, ответа и решения.
В методе делегата TableView CellForRowAtIndexPath Реализуйте следующий код.
enum CellType : String {
case answer
case solution
case question
}
func tableView(_ tableView: UITableView,
cellForItemAt indexPath: IndexPath) -> UITableViewCell {
let cellType = arrayDataSource[indexPath.item]
switch cellType {
case .answer:
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "answerCell",
for: indexPath) as! AnswerCell
return cell
case .solution:
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "solutionCell",
for: indexPath) as! SolutionCell
return cell
case .question:
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "questionCell",
for: indexPath) as! QuestionCell
return cell
}
}
Создайте источник данных в соответствии с типом ячейки.
Управление высотой строки в методе делегата табличного представления. Используйте UITableViewAutomaticDimension, представленный в iOS 9.
Следующая ссылка для понимания автоматической высоты строки:
https://www.raywenderlich.com/8549-self-sizing-table-view-cells