2012-05-26 16 views
0

我製備與表視圖和數據源(核心數據)的應用程序。在這張表中,我按照日期排列了幾個任務,並且我有這個分段控制。 我希望表只是後來或等於加載任務在今天的日期,當用戶點擊我要顯示所有任務,如果他拿出第一段表只能再次顯示遲些任務的第二段。使細胞出現和消失在TableView中

的問題是:

1 - 我使用了indexPath fetchedResultsController聯想到獲得管理對象。

2 - 我使用insertRowsAtIndexPaths:withRowAnimation:和deleteRowsAtIndexPaths:withRowAnimation:方法使單元顯示和消失。而這與我的indexPaths混淆,如果我想要去一個特定的行的詳細視圖,它與一個不同的indexPath關聯後,刪除行。

此問題已修復的方法,我沒有,但我仍然有indexPaths和細胞的其他問題,在我看來是走是我凌亂的每一個問題的修正。

有一個簡單的方法來做到這一點?

我試過只是隱藏單元而不是刪除,它的工作原理很好,但是在隱藏單元格的位置是一個空格,如果有一種方法可以隱藏這些單元格並使非隱藏單元格佔據我認爲這將是最簡單的方式。

任何人都可以幫到我嗎?

回答

1

設置單元格的高度,以0時它隱藏,並設置高度回出現時它的原始值。

TableViewController.h

@interface TableViewController{ 
CGFloat cellHeight; 
} 

TableViewController.m

- (void)cellHeightChange{ 
//if you need hide the cell then 
cellHeight = 0; 
cellNeedHide.hidden = YES; 
//if you need hide the cell then 
cellHeight = 44; // 44 is an example 
cellNeedHide.hidden = NO; 
} 

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    switch (section) { 
    // for example section 0 , row 0 is the cell you wanna hide. 
    case 0: 
     switch (row) { 
      case 0: 
      return cellHeight; 
     } 
    } 
} 
+0

Humm,我該怎麼做? UIView的contentStretch方法? – douglasd3

+0

設置你的細胞像'cell.bounds的'bounds'屬性= CGRectMake(0,0,requiredWidth,requiredHeight);' – Barjavel

+0

@ douglasd3我有更新的答案,PLZ檢查 –

1

當用戶點擊一個細分管理對象上執行新的讀取請求給你一個適當的數組(包含所有日期的數組或大於/等於日期)。然後在數據源中使用這個新數組的tableView上使用reloadData

給細胞的要隱藏的高度爲0?