UITableView 单元格在向下滚动然后备份后消失

Posted

技术标签:

【中文标题】UITableView 单元格在向下滚动然后备份后消失【英文标题】:UITableView Cells disappear after scrolling down then back up 【发布时间】:2014-09-27 11:19:31 【问题描述】:

我有一个 UIViewController 和一个 UITableView,里面有自定义单元格。表格视图最初会正确创建单元格。当我向下滚动然后返回时,所有单元格都会消失。我的视图控制器是 UITableviewDelegate 和 UITableViewDataSource 委托。我正在实现所有必需的方法,即:cellForRowAtIndexPath、numberOfRowsInSection、willDisplayCell。我正在使用用于显示自定义表格视图的标准代码。这是我严格遵循的教程:https://medium.com/@musawiralishah/creating-custom-uitableviewcell-using-nib-xib-files-in-xcode-9bee5824e722

我的问题比技术更抽象:是什么导致单元格在向上滚动时消失? 我知道这与单元格重用有关,但我使用 willDisplayCell 正确设置内容,并且 indexpath 会在滚动时更改索引。\

感谢您的任何澄清、提示等。

【问题讨论】:

真的用完了github.com/timd/Pro-ios-TableViews 【参考方案1】:

cellForRowAtIndexPath 方法中创建和添加单元格的属性时,会出现此类问题。在自定义类中创建属性并在声明自定义类后访问它们。例如,您有一个名为 TableCell 的自定义类,在 viewDidLoad

[yourTable registerNib:[UINib nibWithNibName:@"TableCell" bundle:nil] forCellReuseIdentifier:@"CELL"];

cellForRowAtIndexPath

TableCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CELL" forIndexPath:indexPath];
cell.property1 = attribute1;  //property1 already created in class TableCell 

【讨论】:

以上是关于UITableView 单元格在向下滚动然后备份后消失的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 UITableView 单元格在滚动时重叠?

UITableview刷新单元格在部分标题下滚动

UITableView 选定的单元格在滚动时不会保持选中状态

用于 UITableView 的自定义 XIB 单元格在滚动时卡住/卡住

UITableView 在 reloadData 后自动向下滚动

重新加载 UITableView 数据并向下滚动到最后选择的单元格