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 视觉错误,黑色单元格