我以编程方式创建了一个UITableView,在索引为0的部分中有3个单元格。现在,当我在该部分的索引0处的单元格中翻转UISwitch时,它会动画插入第三个单元格。
不幸的是,我在UITableViewRowAnimation的末尾会得到那些奇怪的行,如下图所示。删除单元格时会发生同样的情况。
http://cl.ly/0l120K091b3s0h3J1l3m
有人能告诉我如何解决这个问题吗?它看起来真的很难看。这里是UISwitch开启时执行的代码:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *rowAtIndex2inSectionAtIndex0 =
[NSArray arrayWithObject:
[NSIndexPath indexPathForRow:2 inSection:0]];
if ([defaults boolForKey:@"one"] == 1 &&
[defaults boolForKey:@"two"] == 1 &&
numberOfRowsInSection0 == 2)
{
numberOfRowsInSection0++;
[self.tableView
insertRowsAtIndexPaths:rowAtIndex2inSectionAtIndex0
withRowAnimation:UITableViewRowAnimationTop];
}
答案 0 :(得分:1)
检查要返回的行高,确保它们是整数,而不是分数。
答案 1 :(得分:0)
我发现您提到的任意中间转换行可以通过以下方式删除: -
[self.tableView setSeparatorStyle:UITableViewCellSelectionStyleNone];