我在表格视图中显示数据数组。
我的代码是这样的。
- (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看起来像这样。
答案 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;
}