2010-11-07 156 views
0

在這個方法:當單元格重新出現時停止重新加載UITableViewCell!

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

如果我叫NSLog它會打印出日誌當UITableViewCell顯示每一次在屏幕上。我只是想知道是否可以加載這個單元格一次,而不是每次再次出現時重新加載它。我明白,這不是一個非常有效的設計,但它只是在我需要做的一個單元格上!

謝謝

+0

你試圖解決什麼問題,你認爲這會對你有好處? – imaginaryboy 2010-11-07 20:19:43

+0

剛剛對下面的答案發表了評論... – 2010-11-07 20:41:18

回答

1

當然。你可以在viewDidLoad中創建你的單元格,並從tableView:cellForRowAtIndexPath:中返回。 cellForRowAtIndexPath仍然會被調用,但你只創建/初始化你的單元格一次。如果你喜歡,你可以用這種方式創建所有的單元格,並將它們存儲在一個數組中。當視圖卸載時,不要忘記釋放這些單元格。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    _myCachedCell = [[UITableViewCell alloc] initWithStyle: UITableViewStylePlain reuseIdentifier: nil]; 
    _myCachedCell.textLabel.text = @"some text"; 
} 


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

    if (indexPath.section == 0 && indexPath.row == 0) 
     return _myCachedCell; 
+0

謝謝你現在就試試吧! :) – 2010-11-07 20:10:44

+3

不是一個好主意 – 2010-11-07 20:12:14

+1

我不是說它不是一個好主意。這個問題表明他明白這不是最好的設計。但是,如果您擁有固定單元數量有限的TableView,那麼這可以快速簡單地獲得您所需的內容。 – TomSwift 2010-11-07 20:30:47

相關問題