Ios 滚动时tableview单元格消失

Ios 滚动时tableview单元格消失,ios,objective-c,uitableview,tablecellrenderer,reuseidentifier,Ios,Objective C,Uitableview,Tablecellrenderer,Reuseidentifier,这个问题不一定会发生 有时在滑动时消失,有时不消失 更多信息请点击此处 密码 表格视图隐藏子视图当单元格的框架从滚动视图的视图中消失时 关于表视图如何工作的简单示例 假设您将行的高度定义为100.0f。您可以向其添加一个简单的UIView,比如说它有一个橙色的背景色,它可以将其边缘完美地固定到UITableViewCell的contentView的每个边缘 当您将该视图向上/向下滚动足够远,使100.0f的高度高于/低于滚动视图的框架时,该行实际上是隐藏的。这是为了使表视图简洁高效 你正在经历什

这个问题不一定会发生

有时在滑动时消失,有时不消失

更多信息请点击此处 密码
表格视图隐藏子视图当单元格的框架从滚动视图的视图中消失时

关于表视图如何工作的简单示例

假设您将行的高度定义为100.0f。您可以向其添加一个简单的UIView,比如说它有一个橙色的背景色,它可以将其边缘完美地固定到UITableViewCell的contentView的每个边缘

当您将该视图向上/向下滚动足够远,使100.0f的高度高于/低于滚动视图的框架时,该行实际上是隐藏的。这是为了使表视图简洁高效

你正在经历什么

让我们使用上一个示例,但是您没有将子视图的底部固定到UITableViewCell的contentView的底部,而是使其比contentView的底部高50.0f,因此位于UITableViewCell之外

您会注意到,如果您滚动橙色UIView使其向顶部移动,它会消失,即使屏幕上仍显示一些橙色

但为什么会这样

因为您添加的子视图不适合UITableViewCell,所以当该单元格根据其边框滚动出视图时,它将消失。随着它的消失,您的子视图也将消失

我该如何解决这个问题

确保所有子视图都在其添加到的UITableViewCell的框架内


查看这些边界的简单方法使UITableViewCell的contentView的背景色成为突出的颜色,例如[UIColor orangeColor];。然后,您将更好地理解这些框架是如何相互关联的

不知道是什么导致了这种情况——也许是约束问题?当单元格消失时,您是否尝试过使用视图调试器来查看它在视图层次结构中是否有任何有用的信息?1.首先在没有实际数据的情况下进行调试,2。如果使用表格视图单元格自动尺寸标注,则使用恒定单元格高度进行调试,并删除单元格约束进行调试。@robotcat@1。ROWATINDEXPATH->返回设备宽度*0.97+46;2.RowAtIndexPath的高度->返回UITableViewAutomaticDimension;没有结果,问题仍然存在。我确信单元格约束是正确的。没关系,我会尽量让它更清楚。不幸的是,这些照片对我来说是404,你能尝试另一种方式来分享它们吗?嗯,这很奇怪。您的代码中是否有某个地方以某种方式修改了单元格的帧或大小?另外,表视图的帧大小是否与视图控制器/根视图的帧大小匹配?感谢您的提示。在这里,您正在修改单元格的帧或大小,也许我知道问题的原因,cellForRowAtIndexPath许多请求,以及reloadSection完成后,单元格的帧被修改。这很有帮助。我添加了一个uiview作为表格单元格的分隔线,发现它在上下滚动时消失了。不,我将其约束到单元格的底部锚点,问题已经解决。separatorLine.bottomAnchor.constraintequalTo:contentView.bottomAnchor。
HSubjectCell *cell = [tableView dequeueReusableCellWithIdentifier:kSubjectCellIdentifier forIndexPath:indexPath];
_subjectView = cell;
cell.delegate = self;
cell.subject = self.subjectArr[indexPath.section - 3];
return cell;