2012-10-05 39 views
0

我正在使用的cellForRowAtIndexPath [self.messageList scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:NO];,它工作正常,當行表添加陣列則自動滾動上攻,但問題是,當我嘗試看看前幾列,然後它會自動再來最後一排。而且我無法看到我的所有行。請讓我知道我在哪裏使用這個或任何其他方法來做到這一點。在iPhone中使用scrollToRowAtIndexPath的位置?

+0

後您的代碼首先讓問題得以確定 – 2012-10-05 07:08:48

回答

0

如果你寫在你的索引路徑小區行的代碼,那麼它會被稱爲每次嘗試手動滾動堂妹此消息被稱爲繪製你的時間,你將b定向到您指定的行。嘗試在IF - Else塊中檢查您的索引路徑,並在發生某些操作時才滾動。

+0

遐我已經嘗試,如果([自它低谷驗證碼的tableView:self.messageList numberOfRowsInSection: index_old.section]> indexPath.row){ [self.messageList scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop動畫:NO]; } 但我會在分配index_old第一次。 – Saurabh

+0

你到底想要達到什麼樣的目標?我的意思是你想在你的表格視圖中做什麼樣的行爲? –

+0

在此表中動態地添加了來自Web服務的數據,所以我想要添加的最後一行顯示在用戶的前面或上邊的行向上走1步。 – Saurabh

0

cellForRowAtIndexPath是用於創建細胞,以查看。當你滾動時的細胞是viewed.So每次方法調用[self.messageList scrollToRowAtIndexPath:indexPath方法(其被稱爲內部cellForRow)該方法被稱爲方法也被稱爲與該表滾動到那一排!

+0

雅我知道這就是爲什麼我問我在哪裏使用此代碼。或任何其他想法來做到這一點。 – Saurabh

+0

@ user1652551你的目的是滾動到某一行? –

+0

時要滾動 –

1

cellForRowAtIndexPath方法不要求你有所有的細胞。它只是在您的TableView中調用可見的單元格。當您滾動UITableView時,它會詢問UITableView您想要使用可重用單元格或添加新的單元格。一般我們使用可重用的單元,因此它使用單元的第一個no並在單元的末尾添加。它不會在最後創建另一個新的小區。所以,當你滾動你的UITableView它不滾動到單元格的結尾,它indexPath類似於第一個單元格的indexPath。所以你不能將你的UITableView翻到Down。

使用下面的代碼可能對你有幫助... :)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 

     NSString *CellIdentifier = [NSString stringWithFormat:@"S%1dR%1d",indexPath.section,indexPath.row]; 

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
     if (cell == nil) 
     { 
      cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier]; 

      [self.tblView scrollToRowAtIndexPath:indexPath atScrollPosition: UITableViewScrollPositionTop animated: YES]; 
      // your code 

     } 

      // your code 

     return cell;  

    }