【发布时间】:2019-09-29 15:52:17
【问题描述】:
我正在寻找一种方法来调整具有更复杂布局的tableView 单元格的大小。
为了简化问题的描述,tableview 单元由三个视图组成。一个定义单元格“背景”的视图和两个附加视图(每个视图的高度为背景单元格的 45%。
这些附加视图之一被标记到背景视图的顶部,另一个被标记为底部。
如果用户点击 tableview 单元格,它应该以只有顶视图可见的方式缩小,并且在额外的用户点击后,它应该再次调整为完整大小。
用户点击由函数处理
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
调整大小由
完成func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
不幸的是,在缩小 tableview 单元格后,两个添加视图都显示为原始高度的一半。
var selectedCell = -1
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
tableView.deselectRow(at: indexPath, animated: true)
if (selectedCell != indexPath.row)
{
selectedCell = indexPath.row
}
else {
selectedCell = -1
}
tableView.beginUpdates()
tableView.endUpdates()
}
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if (indexPath.row == selectedCell)
{
return 65
}
else {
return UITableView.automaticDimension
}
}
我现在正在寻找一种方法来更改代码,在缩小后只有上视图可见。 Example picture of the fully visible cell 在示例图片中,缩小 tableview 单元格后应该只显示红色视图。
提前致谢 帕特里克
【问题讨论】:
标签: ios uitableview uiview resize