gpt4 book ai didi

ios - 在多个部分重用 UITableViewCell

转载 作者:行者123 更新时间:2023-11-28 20:09:50 25 4
gpt4 key购买 nike

在下面的代码中,UILabel 文本会在其他行中重复。我知道这是表可重用性的问题,但无法弄清楚如何解决它。一切看起来都很好,即使是正在返回的计数。

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

//Doc Name
if(indexPath.section == 0)
{
cell=[tableView dequeueReusableCellWithIdentifier:@"cell"];

if(cell==nil)
{
cell= [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"]autorelease];

}

cell.textLabel.text= docName;
cell.textLabel.font=[UIFont fontWithName:@"Times New Roman" size:17.f];

UILabel *name = [[UILabel alloc]init];
name.backgroundColor = [UIColor clearColor];
name.textAlignment = NSTextAlignmentCenter;
name.frame = CGRectMake(600,2.0f,250,50);
name.text = @"11:12:01";
[cell addSubview:name];

}

//Joint Work
if(indexPath.section == 1)
{
cell=[tableView dequeueReusableCellWithIdentifier:@"cell"];

if(cell==nil)
{
cell= [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"]autorelease];

}

cell.textLabel.text= [jointWrkNames objectAtIndex:indexPath.row];
cell.textLabel.font=[UIFont fontWithName:@"Times New Roman" size:17.f];
}

//Detailing
if(indexPath.section == 2)
{
cell=[tableView dequeueReusableCellWithIdentifier:@"cell"];

if(cell==nil)
{
cell= [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"]autorelease];

}

cell.textLabel.text= @"Detailing";
cell.textLabel.font=[UIFont fontWithName:@"Times New Roman" size:17.f];
}
}

最佳答案

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

//Doc Name
if(indexPath.section == 0)
{
cell=[tableView dequeueReusableCellWithIdentifier:@"section_0_cell"];

if(cell==nil)
{
cell= [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"section_0_cell"]autorelease];

}

cell.textLabel.text= docName;
cell.textLabel.font=[UIFont fontWithName:@"Times New Roman" size:17.f];

UILabel *name = [[UILabel alloc]init];
name.backgroundColor = [UIColor clearColor];
name.textAlignment = NSTextAlignmentCenter;
name.frame = CGRectMake(600,2.0f,250,50);
name.text = @"11:12:01";
[cell addSubview:name];

}

//Joint Work
if(indexPath.section == 1)
{
cell=[tableView dequeueReusableCellWithIdentifier:@"section_1_cell"];

if(cell==nil)
{
cell= [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"section_1_cell"]autorelease];

}

cell.textLabel.text= [jointWrkNames objectAtIndex:indexPath.row];
cell.textLabel.font=[UIFont fontWithName:@"Times New Roman" size:17.f];
}

//Detailing
if(indexPath.section == 2)
{
cell=[tableView dequeueReusableCellWithIdentifier:@"section_2_cell"];

if(cell==nil)
{
cell= [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"section_2_cell"]autorelease];

}

cell.textLabel.text= @"Detailing";
cell.textLabel.font=[UIFont fontWithName:@"Times New Roman" size:17.f];
}
return cell;
}

为了成功重用正确的单元格,cellIdentifier 对于不同类型的单元格必须是唯一的。因此每个部分都有不同的标识符。

关于ios - 在多个部分重用 UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20737836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com