我在我的一个应用程序中使用RATreeView,但是面对一些奇怪的内容偏移问题(如果我错了,请纠正我)。访问了许多线程上的“所以”,大致相同,但没有运气。
我在表视图的每个单元格中都有一些复选框,有n个单元格,假设在第一次启动时我有20个单元格可见,现在我想单击其他复选框,所以我向下滚动,现在如果我单击TableView的最后一个复选框,contentOffset (y偏移量)会被更改,表被滚动到向下。此问题仅适用于iso 7,而不是iOS6.。
在viewDidLoad中-
if([[[[UIDevice currentDevice] systemVersion] componentsSeparatedByString:@"."][0] intValue] >= 7)
{
self.automaticallyAdjustsScrollViewInsets = NO;
} 在chekboxClickAction内部-为了重新加载表,这是我尝试过的-
//
CGPoint offset = [[self treeView] contentOffset];
[self.treeView reloadData];
self.treeView.contentOffset = CGPointMake(offset.x, offset.y);//
CGPoint offset = [[self treeView] contentOffset];
[self.treeView reloadData];
[self.treeView setContentOffset:CGPointMake(0, offset.y)];
[self.treeView setContentInset:UIEdgeInsetsMake(0,0,0,0)];但没有运气。
下面是image1和Image2中提到的场景。


任何帮助都会很感激。
发布于 2014-09-25 12:24:34
只是有一个类似的问题,并发现这个问题。
看来,如果我也恢复了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;发布于 2014-12-24 00:42:34
您可以尝试此工作来修复contentOffset重置对iOS7的影响。
[self performSelector:@selector(setContentOffset) withObject:nil afterDelay:0.0];https://stackoverflow.com/questions/24819452
复制相似问题