Ios cell.accessoryView图像不应显示时显示';t仅适用于可重复使用的电池

Ios cell.accessoryView图像不应显示时显示';t仅适用于可重复使用的电池,ios,uitableview,custom-cell,accessoryview,Ios,Uitableview,Custom Cell,Accessoryview,我使用自定义单元格设置两个图像,一个accessoryView图像和一些自定义按钮。最初会显示accessoryView图像。当用户滑动该行时,我会隐藏accessoryView图像并取消隐藏按钮。当用户“取消擦除”(或点击其他地方)时,我隐藏按钮并显示accessoryView。这一切都很好,但我执行以下操作时除外: 1) 加载屏幕。accessoryView图像在那里,按钮被隐藏。好 2) 划一行。accessoryView消失,按钮出现。好 3) 向下滚动表格以显示更多单元格(我使用的是可

我使用自定义单元格设置两个图像,一个accessoryView图像和一些自定义按钮。最初会显示accessoryView图像。当用户滑动该行时,我会隐藏accessoryView图像并取消隐藏按钮。当用户“取消擦除”(或点击其他地方)时,我隐藏按钮并显示accessoryView。这一切都很好,但我执行以下操作时除外:

1) 加载屏幕。accessoryView图像在那里,按钮被隐藏。好

2) 划一行。accessoryView消失,按钮出现。好

3) 向下滚动表格以显示更多单元格(我使用的是可重复使用的单元格)。所有新单元格都显示为accessoryView,没有按钮。很好,正如所料

4) 向上滚动到我刷过的原始单元格。我看到accessoryView图像和如下按钮:

下面是一些代码: 在自定义单元格对象中,我有:

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];
    if (selected)
    {
        self.accessoryView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"arrow-right-black.png"]];
        UIImage *selectedRowImage = [UIImage imageNamed:@"table-selectedcellbg-red-45px-stretch.png"];
        self.selectedBackgroundView = [[UIImageView alloc]initWithImage:[selectedRowImage resizableImageWithCapInsets:UIEdgeInsetsMake(selectedRowImage.size.height, selectedRowImage.size.width/2, selectedRowImage.size.height, selectedRowImage.size.width/2)]];
    }
    else
    {
        self.accessoryView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"arrow-right.png"]];
        self.selectedBackgroundView = [[UIImageView alloc]initWithImage:[[UIImage alloc]init]];
    }
}

- (void)swipeCell 
{
    [self setSelected:NO animated:NO];
    self.accessoryView = nil;

    swipeButtons.hidden = NO;
}
- (void)unswipeCell
{
    [self setSelected:NO animated:NO];
    self.accessoryView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"arrow-right.png"]];
    swipeButtons.hidden = YES; 
}
在我的cellForRowAtIndexPath中,我检查该单元格是否被刷卡:

if (self.indexPathSwipeButton != nil && self.indexPathSwipeButton.row == indexPath.row)
{
    [cell swipeCell];
}
else
{
    [cell unswipeCell];
}
return cell;

有什么想法吗?

您使用
[自选设置:无动画:无](void)swipeCell中的code>和方法
-(void)unswipeCell中的code>。
但是在
(void)swipeCell
中,它应该是
[自选设置:是:否]


希望对您有所帮助

您好,用户2398911,谢谢您的回复。我不认为是这样。我不希望单元格被选中,这会将背景更改为红色并高亮显示所有内容。应取消选择单元格,accessoryView隐藏。self.accessoryView.hidden=是;此setSelected函数似乎是在调用cellForRowAtIndexPath之后调用的。但我不叫这个。是否有需要重写的方法?解决方法是在setSelected方法中添加“if(self.swipeButtons.hidden)”。如果按钮未隐藏,请不要显示箭头。还是不知道一开始是怎么称呼它的。。。