滚动时,tableview单元格消失

时间:2016-12-17 03:23:26

标签: ios objective-c uitableview tablecellrenderer reuseidentifier

不一定会出现此问题

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

此处提供更多信息

click to show gif

click to show storyboard png

HSubjectCell *cell = [tableView dequeueReusableCellWithIdentifier:kSubjectCellIdentifier forIndexPath:indexPath];
_subjectView = cell;
cell.delegate = self;
cell.subject = self.subjectArr[indexPath.section - 3];
return cell;

1 个答案:

答案 0 :(得分:1)

表格视图"隐藏"子视图单元格框架超出滚动视图视图的瞬间。

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

我们假设您将行定义为100.0f的高度。你向它添加了一个简单的UIView(让它说它有一个橙色的背景颜色),它的边缘完美地固定在UITableViewCell {{1}的每个边缘上}。

当您向上/向下滚动该视图足够远以使contentView高度高于/低于滚动视图的框架时,该行基本上是隐藏的。这是为了使表视图快速有效。

您遇到的问题

让我们使用上一个示例,但不是将子视图的底部固定在100.0f UITableViewCell的底部,而是将其移至{{1}在} contentView的底部,因此位于50.0f之外。

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

但为什么会发生这种情况?

因为您添加的子视图不适合UITableViewCell,当该单元格滚出视图(基于其框架)时,它会消失"。随着它的消失,您的子视图也会消失。

如何解决此问题?

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

查看这些边界的简单方法,使UITableViewCell UITableViewCell的背景颜色突出显示,例如UITableViewCell。然后,您将更好地了解框架是如何相关的。