我有一个使用自动布局cells
动态增长constraints
的表格视图。我有一个场景,我必须在其中一个动态构造的单元格中显示UITableView
。这里最重要的是我不知道任何东西的框架,我必须使用约束来构造一切。我需要的只是解释如何实现这个目标?
答案 0 :(得分:0)
所以我猜你有一个MasterViewController,里面有一个tableView。然后你想在MasterViewController的tableView的一个单元格中添加另一个tableView,它是MyCustomcell类的一部分。
使用tableView添加customCell并不是什么大问题,但根据CustomCell中显示的数据计算和维护MasterViewController的高度有点棘手。如果您正在询问如何在tableView中添加CustomCell,那么有很多很好的教程可以通过快速谷歌轻松获得。
我遇到了类似的情况,并以下列方式解决了问题。希望这会有所帮助。
1)如果你有一个customCell,你只需要显示文本。然后根据文本内容自动使用自动布局自动维护MasterViewController的tableView高度。 This tutorial有一个非常好的解释。
2)如果要在MasterViewcontroller tableView的一个单元格中添加tableView,那么它就变得棘手了。现在,MasterViewController单元格的高度取决于CustomCell tableview高度的高度内容。我尝试通过在Swift 3中应用不同的方法来处理这种情况,但最终通过以下方式得到结果: -
class MasterViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var customCell:MyCustomCell? = nil
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "myCustomCell", for: indexPath) as! MyCustomCell
cell.selectionStyle = UITableViewCellSelectionStyle.none
customCell = cell
return cell
}
}
extension MasterViewController:UITableViewDelegate{
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if let aHeight = customCell?.tableView.contentSize.height{
return aHeight
}
return 0
}
}