2011-06-16 89 views
1

這是一個的tableview的委託方法問題與實現代碼如下

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
if (check == TRUE){ 


} 

檢查是一個布爾值,那麼我想,如果支票是真的,它應該跳過一個細胞的創建。 我該怎麼辦?

+0

的問題是的cellForRowAtIndexPath必須返回UITableCell母豬如果youdon」 t返回一個單元格您的應用程序可能會崩潰您需要返回表格源代理並將行數設置爲期望的行數,並給出僅包含所需數據的數據源 – Radu 2011-06-16 10:05:25

+0

這沒有意義。當你不給一個表時,桌子應該顯示什麼? – Eiko 2011-06-16 10:07:04

+0

它會返回一個空單元格 – Radu 2011-06-16 10:08:21

回答

2

在這一點上,你不能,你必須從該方法返回一個單元格,否則你會得到一個異常。關鍵是在返回該段的行數之前進行檢查....

+0

那麼其他解決方案可能會爲indexPath.row添加一個值否? – CrazyDev 2011-06-16 10:27:54

+0

在返回每個部分的段數和行數時,您應該知道要顯示的數據,以便返回相關的計數。當表格視圖詢問您在特定部分/行組合中的數據時,您應該能夠返回所需的數據。我通常根據自己想要顯示的內容過濾數據,返回過濾數據的計數,並使用過濾的數據返回正確的單元格。 – 2011-06-16 10:32:27

0

單元創建依賴於numberOfRowsInSection方法,當你不需要任何單元時返回0。

-1

嗚嗚,根據UITableView的參考:

的cellForRowAtIndexPath:

返回指定索引路徑的表格單元。

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

(...)

返回值

表示表或零的小區,如果小區是不可見的或indexPath超出範圍的對象。

所以你應該只是返回無,並且細胞將被隱藏,我猜。

這是你想要的嗎?

+0

不幸的是,如果tableview THINKS單元格可見返回nil會導致異常。處理此問題的正確方法是僅返回與您希望顯示的單元格數相匹配的行數。 – 2011-06-16 10:17:31

+0

如果你實現了數據源,那麼你必須返回一個值,但是如果你自己調用這個方法,你可能會得到沒有返回的文檔 – 2011-06-16 10:20:11

+0

好的,對不起。誤解了參考文獻。 :/ – tnull 2011-06-16 10:48:51

0

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

return value; 

}