我有以下代码。我正在尝试将背景颜色为红色的子视图添加到我选择的tableView单元格中。但我面临两个错误:
1:tableView Cell的高度为44,但是当我将subView的高度设置为44时,它似乎是单元格高度的一半。当subView框架高度设置为88时,我只能使两个视图相等。
2:当我选中两次时,子视图才会显示。如果我只将其标记一次,则子视图不会显示。
BTW:我在一个viewController中有两个tableView,所以请查看“else”中的tableView。
答案 0 :(得分:1)
您的代码中的问题是您尝试将selectedBar视图直接添加到selectedCell,这是无效的您必须将其添加到selectedCell的contentView
像这样 selectedCell.contentView.addSubview(selectedBar)
当你点击两次时会显示selectedBar,因为你必须将它添加到didSelectRowAt的末尾
tableView.deselectRow(at: indexPath, animated: false)
//编辑 - >创建视图时添加标签555
在cellForRowAt
中添加此代码if(index == indexpath.row)
{
// add the view here
}
else
{
for i in 0..<selectedCell.contentView.subviews.count
{
let cv = selectedCell.contentView.subviews[i]
if cv.tag == 555
{
cv.removeFromSuperview()
}
}
}
注意:选择didSelectCellAt时只更新indexpath.row的索引
并重新加载表格