ios - 滚动时tableview单元格消失

标签 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;

最佳答案

当单元格的框架离开 ScrollView 的 View 时,表格 View 会“隐藏” subview 。

一个关于 TableView 如何工作的简单示例

假设您定义行的高度为 100.0f .您添加一个简单的 UIView给它(假设它具有橙色背景色),它将其边缘完美地固定在 UITableViewCell 的每个边缘上的contentView .

当您向上/向下滚动该 View 足够远时,100.0f高度在 ScrollView 框架的上方/下方,该行本质上是隐藏的。这是为了使表格 View 快速而高效。

你正在经历什么

让我们使用前面的例子,而不是将 subview 的底部固定到 UITableViewCell 的底部。的contentView ,你成功了50.0fcontentView 的底部上方,因此在 UITableViewCell 之外.

你会注意到,如果你滚动橙色 UIView所以它向顶部移动,即使屏幕上仍然显示一些橙色,它也会消失。

但是为什么会这样呢?

因为您添加的 subview 不适合 UITableViewCell ,当该单元格滚动出 View (基于其框架)时,它“消失”。随着它的消失,您的 subview 也会消失。

我该如何解决?

确保所有 subview 都在 UITableViewCell 的框架内它被添加到其中。

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

关于ios - 滚动时tableview单元格消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41195079/

相关文章:

ios - 在 XCode 5 中查看类/协议(protocol)层次结构

ios - 具有以编程方式创建的 UITableView 的 Swift 自定义 UITableViewCell

objective-c - 委托(delegate)返回值

iphone - 真假 : There is no way to set the file owner of a cell loaded using registerNib:forCellReuseIdentifier:

iphone - iOS 应用分发问题

iphone - 我们可以在 iPhone 设备上自动安装任何 .deb/.ipa 文件吗?

iphone - 如何获得 objective-c 中一周中的特定一天?

ios - 安全 UITextField 文本更改为 (*) 星号字符

ios - 内部有 TableView 的弹出 Controller 的固定 subview

ios - UITableView - 在索引路径问题处插入和删除行