2010-11-11 52 views
1

我从进料解析的XML数据。我将所有数据存储在NSArray中。我使用UILable将图像和标题加载到UITableview中。但是当我使用滚动时,文本将按如下方式折叠。的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 2010-11-11 14:05:35

0

更具体地讲,因为你出列细胞,当你调用cellForRowAtIndexPath它潜在地可以返回你已经创建了一个小区。

这电池已经创建的标签。

因此,所有的创造和你的细胞建立自定义视图的魔法dequeueReusableCellWithIdentifier返回nil