iOS Table View beginUpdates 视觉错误,黑色单元格

Posted

技术标签:

【中文标题】iOS Table View beginUpdates 视觉错误,黑色单元格【英文标题】:iOS Table View beginUpdates visual bug, black cells 【发布时间】:2013-06-03 15:22:54 【问题描述】:

我有一个错误,我花了太多时间在自己身上。基本上,我正在根据 Apple 文档创建一个“手风琴”表视图: https://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Listings/ReadMe_txt.html#//apple_ref/doc/uid/DTS40010139-ReadMe_txt-DontLinkElementID_3 代码的工作方式是,如果您点击表视图标题,则会调用代码向该部分添加行。

唯一不同的是它适用于 iOS 5,因此对于我的标题视图,我没有使用可重复使用的标题视图。

基本上,每次我单击标题以显示我的行时,通过 [tableView beginUpdates]/[tableView endUpdates] 添加/删除的单元格都会变黑。但是,如果我之后滚动表格视图,它就会恢复正常。

图片展示了这一点: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];

一些补充说明:

    滚动表格视图后单元格的背景是表格视图的背景(我无法为单元格设置背景)。黄色视图是单元格背景顶部的视图,应该是绿色的。 如果我再次单击 iOS 模拟器调试“颜色”,黑色单元格就会消失。 我尝试将“突出显示”、“选定”颜色更改为随机颜色,但没有任何变化。仍然是黑细胞虫。 我已经对代码进行了三次检查,例如将单元格添加到错误的部分,所有这些似乎都是正确的。 当我使用默认的白色单元格(没有自定义笔尖)时,也会出现该错误。

【问题讨论】:

【参考方案1】:

问题是我在桌子顶部有一个视图。

更具体地说,视图具有清晰的彩色背景和添加的阴影,因此它会形成“内部阴影”。

该视图以某种方式导致表在更新时呈现完全错误。

【讨论】:

好吧,我的解决方案只是找到并删除导致错误的原因。我没有发现如何在表格顶部放置视图并使其仍然有效。不要认为这真的值得付出努力,因为这是一些潜在的 iOS 错误。我敢肯定还有其他方法可以施加内部阴影。也许在 tableview 的两侧创建 4 个视图。

以上是关于iOS Table View beginUpdates 视觉错误,黑色单元格的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 Table View Cell 传递到 IOS 中的 View Controller

iOS UITableView tableHeaderView 高度变了

iOS Table View beginUpdates 视觉错误,黑色单元格

iOS Table View XIB 布局问题

Table View 窗外屏幕 iOS Objective C

ios 官网文档翻译—Create a Table View(swift)