0

我正在自定义 UITableViewCell 的背景,除了单元格的第一次触地之外,它工作正常。

视图加载已选择的单元格之一,并具有正确的自定义背景。其他未选择的单元格也具有正确的自定义背景: 在此处输入图像描述

如果我一次点击客户单元格,它会显示默认选定的单元格背景(纯蓝色):

在此处输入图像描述

当我松开触摸时,它变成了自定义背景。在随后的着陆中,它会显示正确的自定义背景。

单元格是 UITableViewCell 的子类,我在- (void)setSelected:(BOOL)selected animated:(BOOL)animated方法中设置背景,如下所示:

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];

    if(selected)
    {
        UIImage *image = [UIImage imageNamed:@"ipad-list-item-selected.png"];
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
        cell.selectedBackgroundView = imageView;
    }
    else
    {
        UIImage *image = [UIImage imageNamed:@"ipad-list-element.png"];
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
        cell.backgroundView = imageView;
    }
}

如何更正此问题,以便自定义背景也出现在第一次触地时?

4

1 回答 1

1

你在哪里创建你的单元格,在哪里cellForRowAtIndexPath设置你的默认值selectedBackgroundView,而不是第一次在setSelected.

或者在覆盖中设置属性setSelected调用super 方法。selectedBackgroundView

于 2013-06-20T15:29:20.063 回答