2012-07-11 127 views
2

我試圖實現的功能是,首先我在UITableView中顯示兩行,顯示完美。然後在didSelectRowAtIndexpath:上,我在UITableView中加入numberOfRows,爲此我在加入numberOfRows和所需數據後重新加載UITableViewcellForRowAtIndexPath不被調用所需的次數

我的問題是,我通過在numberOfRowsInSection:行的新號碼(我已經檢查,它被正確地傳遞),但cellForRowAtIndexpath:只有兩次後調用,這是以前numberOfRows值。

我的代碼:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return self.currentSubCategoryRows; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    // My code for cell construction goes here 
} 

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    [self.arrWithAdditionalValues addObjectsFromArray:[self.dictSubCategoriesLevel3 objectForKey:[NSString stringWithFormat:@"%d",rowOpened]]]; 
    self.currentSubCategoryRows += self.arrWithAdditionalValues.count; 
      [tableView reloadData]; 
} 

可能是什麼原因?

任何幫助將不勝感激!

+1

你能在這裏顯示代碼如何增加行數嗎? – 2012-07-11 05:32:48

+0

請告訴我們代碼。 – AJS 2012-07-11 05:35:44

+0

我已經使用代碼編輯了我的問題... – 2012-07-11 05:40:10

回答

5

我找到了解決方案。

當我調整我UITableView按照其中的行數cellForRowAtIndexPath:,這就是爲什麼UITableView的下一部分是不可見的,併爲UITableView這是不可見的部分,cellForRowAtIndexPath:不會被調用。

抱歉打擾你們所有人。

非常感謝您的幫助!

2

嘗試重新加載表中viewWillAppear

- (void)viewWillAppear:(BOOL)animated { 
    [tableview reloadData]; 
    } 
+0

但我想重新加載它didSelectRowAtIndexpath:因爲我想要添加新行的行的選擇... – 2012-07-11 05:35:44

4

的cellForRowAtIndexPath:只只要需要繪製調用。您必須構建該方法,而不必控制何時調用該方法。

+0

我認爲你是對的,只要我滾動表視圖,它被更新,但如果我想要在reloadData中更新它? – 2012-07-11 05:52:51

+0

謝謝,你的回答給了我一個提示... – 2012-07-11 06:19:51

+0

如果你需要處理cellForRowAtIndexPath:那麼你是在一個錯誤。該方法不適合您的必需品,而是適合系統。讓它在需要時調用該方法並儘可能多地調用它。您需要完成的計算必須以其他方法完成,您可以在需要時觸發。 – Gabriel 2012-07-11 10:34:02

相關問題