UITableView insertRowsAtIndexPaths 删除单元格分隔符
Posted
技术标签:
【中文标题】UITableView insertRowsAtIndexPaths 删除单元格分隔符【英文标题】:UITableView insertRowsAtIndexPaths remove cell separator 【发布时间】:2014-06-11 10:59:30 【问题描述】:我需要在所选行下添加一个新行。我在 didSelectRowAtIndexPath 中使用此代码:
[_dataSource insertObject:newDataObject atIndex:indexPath.row + 1];
NSMutableArray *indexPaths = [NSMutableArray array];
NSInteger currentCount = indexPath.row;
[indexPaths addObject:[NSIndexPath indexPathForRow:currentCount+1 inSection:0]];
[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
它会在正确的位置添加新行,但也会删除所选行的上部单元格分隔符。我做错了什么?
【问题讨论】:
会不会是你的新单元格高度不对? 不,因为当我在 cellForRowAtIndexPath 中创建单元格时,我总是使用相同的高度。而且内容也是一样的。 我曾经问过我有一个问题,一旦我改变了原型单元格的数量并且调整了单元格的大小:) 并且相互重叠 如果您通过界面构建器使用隐式高度,请覆盖委托方法并指定要测试的恒定高度。 我在 cellForRowAtIndexPath 中指定了行高(它是常数)。 【参考方案1】:似乎 UITableViewCell 在选定状态下没有分隔符。 UITableViewCellSelectionStyleNone 只是禁用突出显示,但单元格是selected
无论如何。添加
[tableView beginUpdates];
// insert/delete manipulations
[tableView deselectRowAtIndexPath:indexPath animated:NO];
[tableView endUpdates];
解决问题
【讨论】:
以上是关于UITableView insertRowsAtIndexPaths 删除单元格分隔符的主要内容,如果未能解决你的问题,请参考以下文章
UItableview 单元格的动态高度与 UItableview 单元格内的 UItableview
水平 UITableView 中的垂直 UITableView
如何与重叠显示的 UITableView 交互另一个 UITableView