2

UITableViewCell与单曲中的流行部分一样NSArray吗?我有一个事件数组,将数据加载到cellForRowAtIndexPath中,我应该按年事件创建部分。
例如:

2012 年部分
日期:01/01/2012
事件:现场音乐

日期:01/02/2012
事件:现场音乐

部分 2011
日期:01/01/2011
事件:现场音乐

日期:01/02/2011
事件:现场音乐

单元格已经填充,我只怀念划分为部分的部分,创建两个部分(最多两年)。

对不起,我还是有点迷茫,我解决不了,请帮帮我,什么时候考?我会发布我的代码,非常感谢

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
              //acquisisco la data dell'evento
        NSString *dataEv = [[events objectAtIndex:indexPath.row + indexPath.section]DataEvento];


//retrive year ,example 2011, 2012 when test?
NSString *Year = [Utility getPartOfDate:dataEv type:UTLGetYear];
    //set image
    ...
    [cell.contentView addSubview:myImg];

    //set day
    day.text = [Utility getPartOfDate:dataEv type:UTLGetNumberOfDay];;
    [cell.contentView addSubview:day];

    //set dayOfWeek
    ...
    dayOfWeek.text = [Utility getPartOfDate:dataEv type:UTLGetDayOfWeek];;
    [cell.contentView addSubview:dayOfWeek];

    //set month
    month.text = [Utility getPartOfDate:dataEv type:UTLGetTextMonth];;
    [cell.contentView addSubview:month];

    //set title
    ...
    lblTitleEvent.text = [[eventi objectAtIndex:indexPath.row + indexPath.section]Artist];
    [cell.contentView addSubview:lblTitoloEvento];

    //set description event
    lblDescEvento.text = [[eventi objectAtIndex:indexPath.row + indexPath.section]Description];
    [cell.contentView addSubview:lblDescriptionEvent];


      }else{

    lblTitleEvent = (UILabel*)[cell.contentView viewWithTag:5];
    lblTitleEvent.text = [[events objectAtIndex:indexPath.row + indexPath.section]Artista];

    lblDescEvent = (UILabel*)[cell.contentView viewWithTag:6];
    lblDescEvent.text = [[events objectAtIndex:indexPath.row + indexPath.section]Description];
}

return cell;

}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 2;
}


    // Customize the number of rows in the table view.
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
       return [events count];        
    }

    - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {        
            if(section == 0){
                return @"Section 1";
            }
            if(section == 1){
                return @"Section 2";
            }
        }
4

2 回答 2

0

试试这个

在 cell.textlabel.text 中:

cell.textlabel.text = [NSString stringWithFormat:@"%@/n%@/n%@",[array1 ObjectAtIndex:row],......];

您还必须将其设置HightForRow为更广阔的空间

等等

于 2012-07-16T09:23:33.387 回答
0

好吧,您将必须找出阵列中一个部分结束而另一部分开始的位置。如果有两个部分,则实现

numberOfSectionsInTableView:

并返回 2 或您可能拥有的部分。

然后相应地改变你的cellForRowAtIndexPath。您必须按部分进行区分。第二部分的第一行(第 0 行,第 1 部分)必须对应于数组中超出前一部分最后一个对象的第一个对象。(或者)

你将不得不numberOfRowsInSection:相应地改变。在您的示例中,它将被调用两次。一次用于第 0 节,一次用于第 1 节。您返回该节中的行数。

对于标题,您可以实现titleForHeaderInSection:为每个部分重新调整倾斜。

您可以在 UITableViewDataSource 协议参考中找到文档,http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDataSource_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UITableViewDataSource

如果您想克服节标题的不良布局能力,那么您可以实现表格视图控制器viewForHeaderInSection:,它会重新调整视图以显示为每个节的标题。它记录在 UITableViewDelegate 协议参考中,http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UITableViewDelegate/tableView:viewForFooterInSection

于 2012-07-16T09:26:13.607 回答