答案 0 :(得分:2)
请考虑到您的表格视图没有任何页眉和页脚。
在CellForRowAtIndexPath的TableView的Delegate方法中,实现以下代码。
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
}
}
根据单元格类型创建数据源。
在表视图的委托方法中管理一行的高度。使用iOS 9中引入的UITableViewAutomaticDimension。
以下链接可了解自动行高:
https://www.raywenderlich.com/8549-self-sizing-table-view-cells
答案 1 :(得分:1)
不要将它们视为页脚和页眉。只是单元的顶部,中间和底部。然后,您可以构建包含这三个部分的复杂视图。 您可以将其中3个实现为不同的自定义视图,并且该单元将只是所有这些视图的容器。