如何使用自定义UITableViewCell

时间:2011-11-21 18:52:28

标签: iphone objective-c cocoa-touch uitableview

我有一个UITableView,我希望一些单元格成为标准的UITableViewCells,我有一个名为ImageTableViewCell的自定义单元格。我在IB中设置了这个自定义单元格,并与其标题和实现相关联。

单元格与标准单元格一起很好地加载到我的视图中,但是我的数据没有在运行时放入单元格中。这是我正在使用的代码。你注意到有什么不对吗?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = nil;
    if (tableView == self.visitTableView && indexPath.section == 0 && indexPath.row == 0){
        CellIdentifier = @"imageCell";
    }
    else{
        CellIdentifier = @"cell";
        }
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    ImageTableViewCell *imageCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (tableView == self.visitTableView)
    {
        if (indexPath.section == 0)
        {
            switch (indexPath.row) {
                case 0:
                    imageCell.patientNameLabel = [self.appointmentDictionary objectForKey:@"patient"];
                    [imageCell.patientImage setImageWithURL:[NSURL URLWithString:[self.appointmentDictionary objectForKey:@"patient_small_photo_url"]] placeholderImage:nil];
                    break;
                case 1:
                    cell.textLabel.text = @"Appointment";
                    cell.detailTextLabel.text = [self.appointmentDictionary objectForKey:@"scheduled_time"];
                    break;                
                default:
                    break;
                }
        }

1 个答案:

答案 0 :(得分:2)

嗯,你最后的评论是问题所在。您将两个单元格出列,然后配置第二个单元格并返回第一个单元格。

要获取指向ImageTableViewCell的指针,只需转换UITableViewCell指针,如下所示:

ImageTableViewCell *imageCell = (ImageTableViewCell*)cell;

并删除此内容:

 ImageTableViewCell *imageCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

然后你可以继续为这两种情况返回'cell'。