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

Posted

技术标签:

【中文标题】将子视图添加到选定的表格视图单元格【英文标题】:Add subview to selected tableview cell 【发布时间】:2017-12-23 12:27:14 【问题描述】:

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

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

2: subView 只有在我两次 tab 时才会显示。如果我只标记一次,则子视图不会显示。

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

【问题讨论】:

代替图片添加您的代码 尝试将子视图添加到seleectCell.contentView 【参考方案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 的索引

并重新加载表格

【讨论】:

现在的问题是我希望添加的子视图保留在那里,直到我选择另一个 tableViewCell。我正在做的方式是使用索引号来标记我以前的单元格。通过使用索引号,我可以在选择另一个单元格时删除之前添加的子视图。但它不起作用。请帮帮我。谢谢!我使用了“willRemoveSubview”

以上是关于将子视图添加到选定的表格视图单元格的主要内容,如果未能解决你的问题,请参考以下文章

iPad:在屏幕上保留选定的表格视图单元格

除非快速选择所有单元格,否则限制表格视图

如何将选定的单元格发送到另一个视图控制器?

如何将子视图添加到情节提要中的自定义 UITableViewCell

更改 UITableView 中一些选定的表格视图单元格文本的颜色

如何在另一个视图控制器上向 UInavigationcontroller 显示完整的选定表格单元格