将子视图添加到选定的表格视图单元格
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”以上是关于将子视图添加到选定的表格视图单元格的主要内容,如果未能解决你的问题,请参考以下文章
如何将子视图添加到情节提要中的自定义 UITableViewCell