gpt4 book ai didi

iphone - UITableviewcell 内容更新反射(reflect)到其他单元格

转载 作者:行者123 更新时间:2023-11-28 22:41:59 26 4
gpt4 key购买 nike

我在一个表格 View 中使用了 8 个单元格。每个单元格都有一组组件,如 UIButton、UILabel 和 UISlider。当我更新第 6 个单元格时,它会反射(reflect)到第 1 个单元格。同样,如果我更新第 7 个单元格,它会反射(reflect)到第 2 个单元格。

删除单元格代码:

{
[buttonarray removeObjectAtIndex:delpath.row];
viewcount--;

ListCell1 *cell=(ListCell1 *)[table cellForRowAtIndexPath:delpath];

cell.slider.value=0;
cell.qlabel.text=@"1";
cell.slabel.text=@"1";
cell.n=1;
[cell.button1 setTitle:@"240" forState:UIControlStateNormal];


for (int m=0; m<7; m++)
{
[[cell.myarray objectAtIndex:m]setImage:[UIImage imageNamed:@"Num2.png"] forState:UIControlStateNormal];
UIButton *but=[cell.myarray objectAtIndex:m];
but.tag=0;
}

[self->table deleteRowsAtIndexPaths:[NSArray arrayWithObjects:delpath, nil] withRowAnimation:UITableViewRowAnimationFade];
[table reloadData];
delpath=NULL;
}

当按下按钮时

-(void)buttonpressed:(id)sender
{
viewcount++;
table.delegate=self;
table.dataSource=self;
//UIView *middleview=[[UIView alloc]initWithFrame:CGRectMake(100,200,300,200)];
[buttonarray addObject:sender];
[table reloadData];
}

表格 View 代码

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return viewcount;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *MyIdentifier=@"mycell";

ListCell1 *cell = (ListCell1 *)[tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil)
{
cell = [[ListCell1 alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
UIButton *b=[buttonarray objectAtIndex:indexPath.row];
cell.imageView.frame=CGRectMake(0, 0, 0, 0);
b.imageView.frame=CGRectMake(0, 0, 30, 30);
cell.imageView.image=b.imageView.image;
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
ListCell1 *cell1 = (ListCell1 *)[tableView cellForRowAtIndexPath:indexPath];
[cell1 addSubview:delbutton];
delpath=indexPath;
return;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 100.0;
}

最佳答案

出现此问题是因为 UIKit 重复使用 UITableView 中的单元格。因此,当您将 UI 组件添加到该单元格时,相同的组件将在不同的行上重复使用。

简而言之,您需要在每次更新单元格时清除/重建您的 UI。

关于iphone - UITableviewcell 内容更新反射(reflect)到其他单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14278144/

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