2014-07-18 52 views
0

我在我的應用程序中使用了RATreeView,但面對內容偏移時出現的一些奇怪問題(如果我錯了,請糾正我)。在「SO」上訪問過很多關於同樣但沒有運氣的主題。iOS 7中的UITableView contentOffset問題

我在表格視圖的每個單元格中都有一些複選框,有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)]; 

但是沒有運氣。

下面是在image1和Image2中提到的場景。

Screen 1

Screen 2

任何幫助真的會被讚賞。

+0

我猜你應該問一下吧'RATreeView'的開發者,如果你還沒有想出如何他的組件的工作原理 - 或者你可以實現一個你可以完全控制的自己的樹視圖。 – holex

回答

0

剛剛有一個類似的問題,發現這個問題。

它似乎如果我還原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; 
0

你可以嘗試圍繞這項工作,以解決contentOffset上iOS7復位

[self performSelector:@selector(setContentOffset) withObject:nil afterDelay:0.0];