2013-02-11 36 views
0

我想知道是否有方法在整個程序的任何地方調用tableview函數。我的意思是我想調用這個功能:iPhone SDK:在任何地方調用tableview函數

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

我的代碼中的任何地方。是否有使用自我功能或任何其他方面的可能性?謝謝。

+0

爲什麼?該方法僅被表視圖用於爲表提供單元格。通過從任何地方撥打電話,你想達到什麼目的? – rmaddy 2013-02-11 03:37:25

+0

你想重新載入數據嗎? – Ares 2013-02-11 03:37:46

+0

我試圖分解表視圖的錯誤,當我在這個方法上放置一個斷點時,它似乎只會通過啓動應用程序時,但不是它的運行時,我正在尋找一個替代品調用此方法從類似void函數的東西,所以也許我可以從那裏分解它。 – mrprogrammer 2013-02-11 04:00:20

回答

2

你當然可以。你只需要能夠在NSIndexPath對象傳遞給它,就像這樣:

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; 

一旦cellForRowAtIndexPath回報你的對象,你可以訪問它的屬性等,如:

cell.backgroundView.alpha = 0.0; 

而且,如果您使用的是自定義的UITableViewCell,你可以得到你的自定義單元格按類型鑄造調用返回:

MyCustomCellClass *cell = (MyCustomCellClass *)[self.tableView cellForRowAtIndexPath:indexPath]; 
1

您只需撥打[實現代碼如下reloadData];這將在索引路徑中調用行的單元格。

1

你可以這樣來做:

// First do modifications in the datasource for table  
    // And then you can reload the specific row like this: 

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; 

[self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; 

和你的cellForRowAtIndexPath不打電話可能是因爲您沒有設置委託或有上顯示爲表UI沒有可見行之所以稱此功能用於在屏幕上可見的行,所以請檢查表格的框架。

相關問題