2011-05-25 77 views

回答

0

您想要創建一個分組的UITableView,並將每個對象的日期作爲表的各個部分。

您可能希望將日期讀入數組,僅存儲唯一日期,並使用該數組數來設置表中的部分數。然後,在每個部分中填充行時,將數組中的每個日期與數據源中與該日期匹配的對象進行匹配。 (除非您的數據已按日期在數據源中排序)。

numberOfSectionsInTableView將基於在你的日期 numberOfRowsInSection不同日期的數量將基於與每個日期

使用indexPath將舉行的部分(日期)和行(對象)的元素個數反對您的字典或其他數據源來獲取cellForRowAtIndexPath方法的數據。

3

如果您已經知道您想要用於節的日期,則將它們作爲數組存儲在數組中。換句話說,爲每一個你想作爲一個部分的日期創建一個數組。然後通過您的customObjects並將它們插入適當的部分數組中。當你有這個使用方法numberOfSectionsInTableView來獲得部分的數量。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return [datesArray count]; 
} 

然後,你將不得不告訴UITableDelegate你將需要多少行,每節。要做到這一點,你使用numberOfRowsInSection

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [[datesArray objectAtIndex:section] count]; 
} 

然後在方法cellForRowAtIndexPath簡單地得到customObject數據用於從適當的段陣列的細胞。

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


    static NSString *CellIdentifier = @"CustomTableCell"; 
    static NSString *CellNib = @"UserCustomTableCell"; 

    UserCustomTableCell *cell = (UserCustomTableCell *)[table dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellNib owner:self options:nil]; 
     cell = (UserCustomTableCell *)[nib objectAtIndex:0]; 
    } 

    MyObject *customObject = [[datesArray objectAtIndex:indexPath.section] indexPath.row]; 

    //Setup your cell here 
    cell.date.text = [customObject date]; 

    return cell; 
}