tableview文本与之前的文本骑

时间:2011-03-21 06:07:54

标签: iphone

我在表格视图中显示数据数组。

我的代码是这样的。

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

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    }

    // Set up the cell


    CGRect labelFrame = CGRectMake(0,0 , 100, 25);    
   itemNameLabel = [[[UILabel alloc] initWithFrame:labelFrame] autorelease];

    itemNameLabel.textAlignment = UITextAlignmentLeft;
    itemNameLabel.backgroundColor = [UIColor clearColor];
    itemNameLabel.text = [tableData objectAtIndex:indexPath.row];
    CGRect anotherLabelFrame = CGRectMake(120, 0, 100, 25);
    quantityLabel = [[[UILabel alloc] initWithFrame:anotherLabelFrame] autorelease];

    quantityLabel.textAlignment = UITextAlignmentLeft;
    quantityLabel.backgroundColor = [UIColor clearColor];
    MyGroceryListAppDelegate *appDelegate = (MyGroceryListAppDelegate *)[[UIApplication sharedApplication] delegate];
    Category *obj = (Category *)[appDelegate.itemsList objectAtIndex:indexPath.row];

    quantityLabel.text = [NSString stringWithFormat:@"%d",obj.quantity];
    [cell.contentView addSubview:itemNameLabel];
    [cell.contentView addSubview:quantityLabel];


    return cell;
} 

我该如何解决这个问题。

任何人都可以帮助我。

提前感谢你。

我为itemNameLabel提供了使用数组的文本,使用了class对象为quantityLabel提供了文本。

所以,当我滚动表视图时,数组名称会覆盖其他标签,但数量标签不会覆盖,因为它来自类。

我需要从数组中显示itemNameLabel,因为它会更改它的值。

当我滚动表格视图时,我的tableview看起来像这样。mytableview

2 个答案:

答案 0 :(得分:2)

理想情况下,您应该在本节中分配所有标签

 if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}

并且在else部分你应该只标记这些标签并在它之后重复使用,但还有另一种简短而又甜蜜的方式 如果应用程序消耗的资源不多

更改

  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil];

答案 1 :(得分:0)

尝试使用函数

为每一行设置高度
- (CGFloat)tableView:(UITableView *)tv heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    return 100.0f;
}