将子视图添加到选定的tableview单元格

时间:2017-12-23 12:27:15

标签: ios iphone uitableview

我有以下代码。我正在尝试将背景颜色为红色的子视图添加到我选择的tableView单元格中。但我面临两个错误:

1:tableView Cell的高度为44,但是当我将subView的高度设置为44时,它似乎是单元格高度的一半。当subView框架高度设置为88时,我只能使两个视图相等。

2:当我选中两次时,子视图才会显示。如果我只将其标记一次,则子视图不会显示。

BTW:我在一个viewController中有两个tableView,所以请查看“else”中的tableView。

enter image description here

1 个答案:

答案 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的索引

并重新加载表格