iOS 7中的UITableView内容偏移问题

iOS 7中的UITableView内容偏移问题,uitableview,ios7,contentoffset,Uitableview,Ios7,Contentoffset,我正在我的一个应用程序中使用,但是遇到一些奇怪的内容偏移问题,如果我错了,请纠正我。访问了许多线程,几乎相同,但没有运气 我在table view的每个单元格中都有一些复选框,有n个单元格,比如说在第一次启动时,我有20个单元格可见,现在我想单击其他复选框,所以我向下滚动,现在如果我单击TableView的最后一个复选框,contentOffset y偏移量会发生变化,表格向下滚动。此问题仅适用于iso 7,不适用于ios 6 在viewDidLoad中- if([[[[UIDevice cur

我正在我的一个应用程序中使用,但是遇到一些奇怪的内容偏移问题,如果我错了,请纠正我。访问了许多线程,几乎相同,但没有运气

我在table view的每个单元格中都有一些复选框,有n个单元格,比如说在第一次启动时,我有20个单元格可见,现在我想单击其他复选框,所以我向下滚动,现在如果我单击TableView的最后一个复选框,contentOffset y偏移量会发生变化,表格向下滚动。此问题仅适用于iso 7,不适用于ios 6

在viewDidLoad中-

if([[[[UIDevice currentDevice] systemVersion] componentsSeparatedByString:@"."][0] intValue] >= 7) 
{
    self.automaticallyAdjustsScrollViewInsets = NO;
} 
在chekboxClickAction内部-重新加载表格 这就是我试过的-

//---方法1--->>

CGPoint offset = [[self treeView] contentOffset];
[self.treeView reloadData];
self.treeView.contentOffset = CGPointMake(offset.x, offset.y);
//---方法2--->>

CGPoint offset = [[self treeView] contentOffset];
[self.treeView reloadData];
[self.treeView setContentOffset:CGPointMake(0, offset.y)];
[self.treeView setContentInset:UIEdgeInsetsMake(0,0,0,0)];
但是没有运气

下面是图1和图2中提到的场景


任何帮助都将不胜感激。

刚刚遇到类似问题并发现了此问题

似乎如果我也恢复contentSize,它会回滚到项目保持不变之前的位置。但是,代码需要对动态内容进行一些调整

CGPoint crtOffset = self.treeView.contentOffset;
CGSize beforeContentSize = self.treeView.contentSize;
[self.treeView reloadData];
for (RADataObject * item in self.items)
{
    [self.treeView expandRowForItem:item withRowAnimation:RATreeViewRowAnimationNone];
}

self.treeView.contentSize = beforeContentSize;
self.treeView.contentOffset = crtOffset;

您可以尝试此解决方法来修复iOS7上的contentOffset重置

[self performSelector:@selector(setContentOffset) withObject:nil afterDelay:0.0];
我想你应该问问RATreeView的开发人员,如果你还没有弄清楚他的组件是如何工作的,或者你可以实现一个你可以完全控制的树视图。