0

我创建了一个自定义单元格并在其上添加了一个 uibutton。在点击该按钮时,我设置该按钮选择了更改按钮的图像。

-(IBAction)btnInfoPressed:(id)sender
{
    [btnInfo setSelected:YES];
}

上述方法在自定义单元类中。现在,当我向下滚动时,在某些单元格之后,即使我没有点击该按钮,也会选择其他一些单元格的按钮。

这是我的 cellforrowatindexpath 方法:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"CustomCell";
CustomCell *c = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if (c == nil)
{
    c = [[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] objectAtIndex:0];
}
c.selectionStyle = UITableViewCellSelectionStyleNone;
return c;
}

有什么想法需要做些什么吗?

4

1 回答 1

3

(根据我上面的评论:) 您不能使用单元格来存储行的状态,因为单元格被重复使用。表格视图仅分配有限数量的单元格。如果向下滚动,dequeueReusableCellWithIdentifier则返回已变为不可见的现有单元格之一。因此,您必须将行的状态存储在数据源中,并在cellForRowAtIndexPath.

于 2013-07-07T13:23:45.577 回答