如何在 UITableViewCell 上保留子视图

Posted

技术标签:

【中文标题】如何在 UITableViewCell 上保留子视图【英文标题】:How to keep subview on UITableViewCell 【发布时间】:2016-11-16 18:10:42 【问题描述】:

当用户点击附件视图时,UITableViewCell 中的个人资料图像会被一个黑色视图变暗,该黑色视图作为子视图添加。

下面是带有黑色子视图的单元格:

问题是:当我点击另一个单元格时,子视图会从第一个单元格中移除并添加到第二个单元格中:

我想保留所有被点击的单元格的子视图。

这是我处理该功能的代码:

 self!.profileImageBlackView.cornerRadius = cell.followUserImage.frame.height/2
 self!.profileImageBlackView.frame = cell.followUserImage.frame
 cell.followUserImage.addSubview(self!.profileImageBlackView)
 cell.followButton.hidden = false

由于某种原因,两个单元格都添加了关注按钮,但“profileImageBlackView”会根据激活的一个单元格从一个单元格移动到另一个单元格。

【问题讨论】:

profileImageBlackView 应该属于 UITableViewCell 子类,您应该在 cellForRow 方法中隐藏/取消隐藏它。 另外,profileImageBlackView 似乎不是UIView,而是CALayer,所以相应地调用它 这是 UITableViewCell 的默认高亮行为吗?如果是这样,请在表格中启用多选。 【参考方案1】:

您不能在不同的单元格中显示相同的视图。如果您将视图添加到另一个单元格,它将从第一个单元格中删除。您必须为每个单元格创建一个单独的视图。

【讨论】:

以上是关于如何在 UITableViewCell 上保留子视图的主要内容,如果未能解决你的问题,请参考以下文章

我如何强制 UITableViewCell 保留其附件

添加一个在 UITableViewCell 中保留其文本的 UITextField

如何在默认样式的 UITableViewCell 中为我还没有的图像保留空间

UITableViewCell 如何动态适应保留宽高比的新图像?

如何让文本在可滚动的 UILabel 中居中?

如何列出iOS中uiviewcontroller中的所有子视图?