我有一个错误,就是我在自己身上花费了太多时间。基本上,我正在根据 Apple 文档创建一个“ Accordion ” TableView : https://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Listings/ReadMe_txt.html#//apple_ref/doc/uid/DTS40010139-ReadMe_txt-DontLinkElementID_3 代码的工作方式是,如果您点击 TableView 标题,则会调用代码向该部分添加行。
唯一不同的是它适用于 iOS 5,所以对于我的标题 View ,我没有使用可重用的标题 View 。
基本上,每次我单击标题以显示我的行时,通过 [tableView beginUpdates]/[tableView endUpdates] 添加/删除的单元格都会变黑。但是,如果我之后滚动 TableView ,它就会恢复正常。
Pictures showing this in action: http://imgur.com/a/B3lMu
我如何删除单元格的一些代码:
// GET THE SECTION INFO SWDeviceSectionInfo *deviceSectionInfo = [self.deviceTableSectionInfo objectAtIndex:section];
// "CLOSE" THE SECTION
deviceSectionInfo.open = NO;
// CREATE INDEX PATHS FOR ROWS THAT NEED TO BE DELETED
NSMutableArray *indexPathsToDelete = [[NSMutableArray alloc] init];
for (int i=0;i<deviceSectionInfo.rowInfo.count;i++) {
// CREATE INDEX PATHS FOR EACH ROW
[indexPathsToDelete addObject:[NSIndexPath indexPathForRow:i inSection:section]];
}
// APPLY THE ROW INSERTIONS
[self.deviceTableView beginUpdates];
[self.deviceTableView deleteRowsAtIndexPaths:indexPathsToDelete withRowAnimation:UITableViewRowAnimationBottom];
[self.deviceTableView endUpdates];
一些额外的注意事项:
- 滚动表格 View 后单元格的背景是表格 View 的背景(我无法为单元格设置 BG)。黄色 View 是本应为绿色的单元格背景顶部的 View 。
- 如果我再次点击 iOS 模拟器调试“颜色”,黑色单元格就会消失。
- 我试过将“突出显示”、“选定”颜色更改为随机颜色,但没有任何变化。仍然是黑细胞虫。
- 我已经对代码进行了三重检查,以防止将单元格添加到错误的部分,所有这些看起来都是正确的。
- 当我使用默认的白色单元格(没有自定义 Nib )时,也会出现该错误。
最佳答案
问题是我在表格顶部有一个 View 。
更具体地说, View 具有清晰的彩色背景并添加了阴影,因此它会形成“内阴影”。
该 View 以某种方式导致表格在更新时呈现完全错误。
关于iOS TableView beginUpdates 视觉错误,黑色单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16900256/