我创建了一个自定义单元格并在其上添加了一个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;
}
有什么想法需要做些什么?
答案 0 :(得分:3)
(来自我上面的评论:)
您不能使用单元格来存储行的状态,因为单元格是重用的。
表视图仅分配有限数量的单元格。如果向下滚动,dequeueReusableCellWithIdentifier
将返回一个已变为不可见的现有单元格。因此,您必须将行的状态存储在数据源中
在cellForRowAtIndexPath
中更新单元格的完整状态(包括按钮的状态)。