2010-11-11 5 views
1

Я проанализировал данные XML из фида. Я сохранил все данные в NSArray. Я загрузил изображения и заголовок в UITableview, используя UILable. Но когда я использую свиток, текст будет свернут следующим образом.Проблема с загрузкой данных UITableviewcell

alt text

Мой код выглядит следующим образом ...

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

    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView1 dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil){ 
     cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 
    }   
    CGRect frame = CGRectMake(70.0, 00.0, 250.0, 55); 
    valueField = [[UILabel alloc] initWithFrame:frame]; 
    [valueField setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin]; 
    valueField.tag = 111; 
    valueField.font=[UIFont fontWithName:@"Helvetica" size:13.0]; 
    valueField.textAlignment = UITextAlignmentLeft; 
    valueField.lineBreakMode=UILineBreakModeWordWrap; 
    valueField.numberOfLines = 0; 
    valueField.textColor = [UIColor whiteColor]; 
    valueField.text=[title1 objectAtIndex:indexPath.row]; 
    valueField.highlightedTextColor = [UIColor whiteColor]; 
    valueField.baselineAdjustment = UIBaselineAdjustmentAlignCenters; 
    valueField.adjustsFontSizeToFitWidth = YES; 
    valueField.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0]; 
    [cell.contentView addSubview:valueField]; 
    [valueField release]; 
    UIImage *patternImage = [UIImage imageNamed:@"bg.jpg"]; 
    UIView *backView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; 
    backView.backgroundColor = [UIColor colorWithPatternImage: patternImage]; 
    cell.backgroundView = backView; 
    NSString *image1 =[images objectAtIndex:indexPath.row]; 
    NSLog(@"Images ..... = %@",image1); 
    NSData *mydata = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:[images objectAtIndex:indexPath.row]]]; 
    UIImage *myimage = [[UIImage alloc] initWithData:mydata]; 
    UIImageView *imageView = [ [ UIImageView alloc ] initWithImage: myimage ]; 
    imageView.frame = CGRectMake(0.0f, 00.0f, 60.0f, 63.0f); 
    [cell.contentView addSubview:imageView]; 
    //cell.imageView.image = myimage; 
    return cell; 
} 

Я не знаю, как решить эту проблему.

ответ

2

Каждый раз, когда ячейка перезагружается, добавляется UILabel.

ли что-то вроде

if (cell == nil) 
{ 
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 
    CGRect frame = CGRectMake(70.0, 00.0, 250.0, 55); 
    valueField = [[UILabel alloc] initWithFrame:frame]; 
    [valueField setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin]; 
    valueField.tag = 111; 
    valueField.font=[UIFont fontWithName:@"Helvetica" size:13.0]; 
    valueField.textAlignment = UITextAlignmentLeft; 
    valueField.lineBreakMode=UILineBreakModeWordWrap; 
    valueField.numberOfLines = 0; 
    valueField.textColor = [UIColor whiteColor]; 
    valueField.highlightedTextColor = [UIColor whiteColor]; 
    valueField.baselineAdjustment = UIBaselineAdjustmentAlignCenters; 
    valueField.adjustsFontSizeToFitWidth = YES; 
    valueField.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0]; 
    [cell.contentView addSubview:valueField]; 
    [valueField release]; 
} 
valueField.text=[title1 objectAtIndex:indexPath.row]; 
+0

+1 Спасибо за любезно ответ. Он работает хорошо. Моя проблема решена. Благодарю. – Velmurugan

0

Чтобы быть более точным, так как вы клетки извлечение из, когда вы звоните cellForRowAtIndexPath это потенциально может вернуть вам ячейку, которая уже была создана.

В этой ячейке уже создана этикетка.

Так все волшебство создания и настройки пользовательских представлений в вас ячейке должно быть сделано только тогда, когда dequeueReusableCellWithIdentifier возвращает значение nil

Смежные вопросы