iPhone自定义单元格的问题

时间:2010-10-06 23:35:56

标签: iphone uilabel cell tableview

我尝试这段代码,但这是一个错误,因为我重复了标题和描述...... 有人可以帮我吗?

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

static NSString *CellIdentifier = @"Cell";

CustomCell *cell=(CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if(cell==nil){
    cell=[[[CustomCell alloc]initWithFrame:CGRectZero reuseIdentifier:CellIdentifier]autorelease];
    cell.accessoryType = UITableViewCellAccessoryNone;
}
else{
    AsyncImageView* oldImage = (AsyncImageView*)
    [cell.contentView viewWithTag:999];
    [oldImage removeFromSuperview];


}
NSString *mediaUrl = [[[[self rssParser]rssItems]objectAtIndex:indexPath.row]mediaUrl];
NSString *noimage=@"http://www.notizie-informatiche.com/wp-content/themes/arthemia/images/imagelogo.png";

if([mediaUrl isEqualToString:noimage] == FALSE){
    //DISEGNO IL FRAME PER L'IMMAGINE
    CGRect frameimmagine;
    frameimmagine.size.width=100; frameimmagine.size.height=120;
    frameimmagine.origin.x=0; frameimmagine.origin.y=0;
    AsyncImageView* asyncImage = [[[AsyncImageView alloc] initWithFrame:frameimmagine] autorelease];
    UIImage *myImage = [UIImage imageNamed:@"uknown.jpg"];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:myImage];
    [cell setAccessoryView:imageView];


    //SCARICO L'IMMAGINE

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
    asyncImage.tag = 999;
    NSURL *url = [NSURL URLWithString: mediaUrl];    
    [asyncImage loadImageFromURL:url];
    [cell.contentView addSubview:asyncImage];
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 
}


//OTTENGO IL TITOLO
//cell.lbltitolo = [[[[self rssParser]rssItems]objectAtIndex:indexPath.row]title];
NSString *titolo = [[[[self rssParser]rssItems]objectAtIndex:indexPath.row]title];
//OTTENFO LA DESCRIZIONE
//cell.lblsottotitolo.text = [[[[self rssParser]rssItems]objectAtIndex:indexPath.row]description];
NSString *descrizione = [[[[self rssParser]rssItems]objectAtIndex:indexPath.row]description];


UILabel *cellatitoloconimmagine=[[UILabel alloc]init];
[cellatitoloconimmagine removeFromSuperview];

UILabel *cellatitolo=[[UILabel alloc]init];
[cellatitolo removeFromSuperview];

UILabel *celladescrizione=[[UILabel alloc]init];
[celladescrizione removeFromSuperview];

UILabel *celladescrizioneconimmagine=[[UILabel alloc]init];
[celladescrizioneconimmagine removeFromSuperview];
/*

[celladescrizioneconimmagine removeFromSuperview];
[celladescrizione removeFromSuperview];
*/
if([mediaUrl isEqualToString:noimage] == FALSE){


    CGRect frametitoloconimmagine = CGRectMake(105.0f, 5.0f, 210, 40);
    cellatitoloconimmagine.frame=frametitoloconimmagine;
    cellatitoloconimmagine.text=titolo;
    cellatitoloconimmagine.textAlignment = UITextAlignmentLeft;
    cellatitoloconimmagine.font = [UIFont boldSystemFontOfSize:16];
    cellatitoloconimmagine.numberOfLines = 2;
    [cell.contentView addSubview:cellatitoloconimmagine];


    CGRect framedescrizioneconimmagine = CGRectMake(105.0f, 55.0f, 210, 50);

    celladescrizioneconimmagine.frame=framedescrizioneconimmagine;
    celladescrizioneconimmagine.text=descrizione;

    celladescrizioneconimmagine.textAlignment = UITextAlignmentLeft;
    celladescrizioneconimmagine.font = [UIFont systemFontOfSize:14];
    celladescrizioneconimmagine.numberOfLines = 3;

    [cell.contentView addSubview:celladescrizioneconimmagine];    

}  别的{

 CGRect frametitolo = CGRectMake(5.0f, 5.0f, 310, 40);
 cellatitolo.frame=frametitolo;
 cellatitolo.text=titolo;


 cellatitolo.textAlignment = UITextAlignmentLeft;
 cellatitolo.font = [UIFont boldSystemFontOfSize:16];
 cellatitolo.numberOfLines = 2;

 [cell.contentView addSubview:cellatitolo];


 CGRect framedescrizione = CGRectMake(5.0f, 55.0f, 310, 50);

 celladescrizione.frame=framedescrizione;

 celladescrizione.textAlignment = UITextAlignmentLeft;
 celladescrizione.font = [UIFont systemFontOfSize:14];
 celladescrizione.numberOfLines = 3;

 celladescrizione.text=descrizione;
 [cell.contentView addSubview:celladescrizione];

}

return cell;

}

1 个答案:

答案 0 :(得分:0)

单元标识符对于唯一单元格必须是唯一的。看起来你有重复的细胞,因为它们都被命名为@“cell”。同时删除“静态”字样。