Изменение элементов в выбранном подклассе UITableViewCell - PullRequest
1 голос
/ 08 декабря 2011

Я реализовал пользовательский UITableViewCell для своего приложения и создал собственный фоновый вид и выбранный фоновый вид, оба из которых прекрасно работают.Тем не менее, у меня есть несколько других изображений и меток в ячейке, которые я хочу изменить цвет, когда он выбран.Я переписал следующий метод, и он правильно регистрируется при выборе ячейки, но не меняет изображение или цвет текста.

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];
    if (selected) {
        NSLog(@"setSelected:YES");
        separatorImage.image = [UIImage imageNamed:@"SeparatorSelected"];
        titleLabel.textColor = [UIColor whiteColor];
    } else {
        NSLog(@"setSelected:NO");
        separatorImage.image = [UIImage imageNamed:@"Separator"];
        titleLabel.textColor = [UIColor grayColor];
    }
}

Есть идеи, что я делаю неправильно?

Обновление

separatorImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Separator"]]];
[separatorImage setFrame:CGRectMake(99, 4, 5, 71)];
separatorImage.backgroundColor = [UIColor clearColor];
[self.contentView addSubview:separatorImage];

titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(111, 4, 188, 26)];
titleLabel.font = [UIFont fontWithName:@"Arial Rounded MT Bold" size:21.0];
titleLabel.backgroundColor = [UIColor clearColor];
[self.contentView addSubview:titleLabel];

1 Ответ

5 голосов
/ 09 декабря 2011

У меня есть догадка, что отправка -setSelected:animated: на super в начале метода предотвращает изменения в вашей ячейке.Попробуйте переместить вызов на super до конца метода.Вам также следует переопределить -setHighlighted:animated:, иначе ваш выбор будет отображаться с задержкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...