2011-08-21 26 views
0

這功能完美,但我想使它成爲一次功能,而不是固定功能。當我用其他數據更改tableview時,數據顯示在前一個tableview的索引處。所以我的解決方案是實現下面的代碼。當我執行此操作時,它可以正常工作,但是當我向下滾動時,它會一直滾動,因此幾乎不可能進一步向下滾動。任何想法如何讓它只執行一次當我改變tableview?iphone - scrollRectToVisible問題

代碼:

[tableView scrollRectToVisible:CGRectMake(0,0,1,1) animated:NO];  

編輯8月21日:

,大家好,非常感謝你!代碼在cellforrowatindexpath中。我把它移到了改變tableview的函數裏面,它像一個魅力一樣工作:D

+0

你不會告訴我們你現在在哪裏調用這個函數。除了上下文外,它沒有任何意義。但嘗試在將新數據推送到表視圖的相同函數中運行該函數。 –

回答

1

您可以覆蓋reloadData方法,如果這是你如何重裝新的數據表視圖,並把代碼在那裏。像這樣的事情在你的表視圖控制器應該足夠了:

- (void)reloadData { 
    [super reloadData]; 

    [tableView scrollRectToVisible:CGRectMake(0,0,1,1) animated:NO]; 
} 

如果它每次向下滾動時滾動起來,我想你把代碼cellForRowAtIndexPath方法中,將被調用每次要存在於細胞。這不是放置該代碼的正確位置。

+0

它根本不起作用。我在UIViewController下有UITableView。你是正確的,我把代碼放在cellForRowAtIndexPath中。 – wagashi

1

它是一次函數。最有可能的是,你的這段代碼再次執行&。如果您將此功能保存在頻繁調用的函數cellForRowAtIndexPath:中,則可能是此問題的原因。你把它放在哪裏?

HTH,

阿克沙伊

+0

你說得對。我把代碼放在cellForRowAtIndexPath中。 – wagashi

+0

什麼時候你想滾動? cellForRowAtIndexPath不是正確的地方。 – Akshay